【问题标题】:I can not find the element (input tag) on the page我在页面上找不到元素(输入标签)
【发布时间】:2021-11-24 09:08:12
【问题描述】:

我正在尝试输入用户名和密码以通过 VBA 登录我的银行帐户。我可以找到密码输入标签来输入密码,但根本找不到用户表单输入标签。我一一尝试了以下方法,但是 Find 方法都不起作用,并且该标签没有其他我可以查找的属性

Dim Mybrowser As New WebDriver
Set Mybrowser = New WebDriver
Mybrowser.Start "chrome"
Mybrowser.Get "https://tbconline.ge/tbcrd/login?t=false"

Mybrowser.FindElementByName("loginUsername1633281403139").SendKeys ("test")
'or
'Mybrowser.FindElementByClass("fblock100 > .ng-valid").SendKeys ("test")
'or
'Mybrowser.FindElementByCss("css=.fblock100 > .ng-valid").SendKeys ("test")
'or
'Mybrowser.FindElementByXpath("//input[@name='loginUsername1633281403139']").SendKeys ("test")
'or
'Mybrowser.FindElementByName("loginPassword1633282058600")

我在代码中犯了错误吗?还是有时我们无法通过页面上的 find 方法找到某些元素,尽管它们存在于那里?谢谢你的建议。

【问题讨论】:

    标签: vba selenium google-chrome automated-tests selenium-chromedriver


    【解决方案1】:

    name 属性值loginUsername1633281403139 似乎是动态的,所以总是使用一些静态属性来查找元素或编写可靠的xpaths。请参阅下面查找元素的不同方法。

    用户名:

    CSS : input[name*='loginUsername']

    xPath#1 : //input[@formcontrolname='username']

    xPath#2 : //input[starts-with(@name,'loginUsername')]

    xPath#3 : //input[@ng-reflect-name='username']


    密码:

    CSS : input[name*='loginPassword']

    xPath#1 : //input[@formcontrolname='password']

    xPath#2 : //input[starts-with(@name,'loginPassword')]

    xPath#3 : //input[@ng-reflect-name='password']

    我建议您练习查找定位器。请浏览此tutorial,它会对您有所帮助。

    【讨论】:

      【解决方案2】:

      您使用的名称或CSS,本质上看起来很脆弱,可能是由后端框架生成的,所以每次运行它们都会改变,请使用自定义和优化下面的CSS或Xpath。

      请注意,CSS 比 XPATH 具有更多偏好

      请将此css 用作用户名

      input[formcontrolname='username']
      

      xpath

      //input[@formcontrolname='username']
      

      密码字段:

      css

      input[formcontrolname='password']
      

      xpath

      //input[@formcontrolname='password']
      

      你可以从这里学习CSS。

      【讨论】:

      • 非常感谢,cruisepandey。是的,它现在正在工作,我通过检查检查了元素标签,也通过 selenium IDE 记录了但他们都没有谈论你的属性,或者他们可能做了但我不明白他们。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      相关资源
      最近更新 更多