【问题标题】:selenium web driver : Unable to locate element硒网络驱动程序:无法找到元素
【发布时间】:2015-12-27 09:28:42
【问题描述】:

更不用说我是使用 selenium 网络驱动程序的新手,我正在尝试使邮箱自动化,以便我可以登录并发送消息,问题是我下载了 Mozilla 的 firebug 插件,这是我目前正在使用的浏览器,当我试图找到登录元素和密码时,一切顺利,因为我是按他们的名字做的。

input class="_nb-input-controller" type="text" **name="login"** autocorrect="off" autocapitalize="off" value=""

input class="_nb-input-controller" type="password" **name="passwd"** value=""

但是,一旦我在邮箱条目处标识符更改它,我就会去撰写链接,这是显示的代码:

a class="b-toolbar__item b-toolbar__item_compose js-toolbar-item-compose daria-action" title="Compose (w, c)" href="#compose" data-action="compose.go" data-params="toolbar=1&toolbar.button=compose"

由于我没有找到任何可以帮助解决此问题的方法,因此一位朋友来告诉我有关 xpath 的信息:

/html/body/div[2]/div/div[5]/div/div[3]/div/div[2]/div/div/div/div[2]/a[2]

通过这样做 selenium 确实找到了元素,我可以点击图标,

但是再次......当我试图进入“TO”提示时,我可以在里面写 它没有找到元素,不是通过xpath,或者有什么方法或公式可以获取元素或将它们转换为selenium可以找到它们的方式???

【问题讨论】:

  • 首先,如果 class="b-toolbar__item b-toolbar__item_compose js-toolbar-item-compose 是唯一的,可以使用. //a[@class'your class name'] 第二个issur,即您无法访问的元素?TO 字段?
  • 您可以尝试在浏览器中安装 selenium IDE,使用它来记录您的交互,并从它生成的脚本中选择它用来捕获元素的标识符。除此之外,我建议使用 FireFox 中的 Web 开发人员工具来获取您感兴趣的元素。在我的 FireFox 中,它是 tools->web developer->inspector。这允许查看元素及其 xpath、类等,即使它是动态构建的。至于你的具体TO字段,我不知道,因为我没有你的应用程序。

标签: java selenium selenium-webdriver


【解决方案1】:

哦,我明白了,我重新尝试使用该元素,我注意到我想要的元素使用 firebug 显示为隐藏,所以我只是尝试下一个元素,网络驱动程序可以找到该项目,这是一个简单的应用程序发送一封电子邮件,我想找到的提示是“收件人”字段。并感谢大家给我正确的使用 Xpath 属性的方法

【讨论】:

    【解决方案2】:

    具有定位器,例如:

    /html/body/div[2]/div/div[5]/div/div[3]/div/div[2]/div/div/div/div[2]/a[2]

    通常是个坏主意。如果你想建立一个稳定的测试,我建议你远离这样的。

    现在我看到你有 @name@class 这样的属性。 XPath 为您提供了一种通过指向标识符而不是指向元素的整个路径来直接访问这些元素的方法。

    你可以试试这样的:

    //input[@name='login'] //input[@name='password']

    更多信息请访问:http://www.w3schools.com/xsl/xpath_intro.asp

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      相关资源
      最近更新 更多