【问题标题】:Getting error "Unable to Locate element"收到错误“无法找到元素”
【发布时间】:2017-03-20 12:06:49
【问题描述】:

我正在使用 selenium webdriver 2.53 和 firefox 43.0.1。我将 ide 测试用例导出到 TestNG 并发现错误“无法定位元素”

<a href="javascript:void(0);">
  <i class="fa fa-user"></i>
  <span class="nav-label">My Profile</span>
  <span class="fa arrow"></span>
</a>

org.openqa.selenium.NoSuchElementException:无法定位元素: {"method":"link text","selector":"My Profile"}

【问题讨论】:

标签: selenium selenium-webdriver selenium-ide


【解决方案1】:

试试这个 xpath。

使用&lt;span&gt;标签的text方法。

//span[contains(text(), 'My Profile')]

【讨论】:

    【解决方案2】:

    By.linkText 不适用于 &lt;span&gt; 标签,仅适用于 &lt;a&gt; 标签。请改用xpath

    By.xpath("//span[contains(., 'My Profile')]")
    

    【讨论】:

    • 错了!它应该适用于嵌入在a中的span
    • @Andersson 来自docs a By which locates A elements by the exact text it displays。 “我的个人资料”不是 &lt;a&gt; 标记的确切文本。
    • 没有。 “我的个人资料”是确切可见的链接文本,可以位于By.linkTextSpan 实际上并不是单独的网络元素——它只是允许将CSS 样式应用于与整个文本内容的CSS 样式不同的部分文本内容
    • @Andersson 显然它在这里不起作用。我也遇到了同样的情况,当A 中包含其他标签时,LinkText() 不起作用。
    • @Guy 您应该能够删除contains(),因为该SPAN 中的确切文本是“我的个人资料”。我喜欢尽可能具体,以避免现在(或以后)抓住错误的元素。
    猜你喜欢
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 2017-12-08
    • 2021-05-18
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多