【问题标题】:I have tried all possible ways to locate an element using Webdriver, but getting an error "Unable to locate Element"我已经尝试了所有可能的方法来使用 Webdriver 定位元素,但收到错误“无法定位元素”
【发布时间】:2016-08-01 04:32:44
【问题描述】:

我是自动化新手,正在尝试自动化网站。我能够使用 webdriver 登录到该站点,但是我无法在下一页上找到任何元素。

我尝试通过 id、name、css 选择器、linktext、xpath 等来定位它。我什至明确地等待,但这也无济于事。

每次尝试定位元素时都会出现以下错误:

原因:org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"link text","selector":"Owner to Channel"}

这是上述按钮的页面源详细信息:

按钮的页面源

定位按钮的代码:

WebElement el = driver.findElement(By.linkText("Owner to Channel "));
el.click();

有什么建议吗?可能是我错过了什么。

【问题讨论】:

  • 您可以尝试使用 partialLinkText 来定位元素。 driver.findElement(By.partialLinkText("Owner")).click();。此外,有时需要滚动页面直到链接可见。希望对您有所帮助。
  • 我试过了,还是不行!
  • 您是否尝试过使用相同的至少第三个父节点的 xpath?如果也试过了,能否请您分享页面的完整或部分 HTML 代码?
  • @VaibhavSingh 您的 HTML 页面是否有多个框架或 iframe?如果可以,请尝试切换您的链接可用的框架。由于同步问题,您也可能遇到此问题,如果 selenium 甚至在页面加载的所有元素之前尝试查找元素,则有可能获得您指定的错误。请尝试使用正确的等待语句。
  • 你用css试过了吗:a[onclick*=navigate][onclick*=O2C]

标签: java css selenium xpath webdriver


【解决方案1】:

感谢大家的建议。

我发现页面源中有一个框架,但它没有 id 或名称。

通过点击和试用,我尝试切换到 id 为 0 的框架,并且成功了!

【讨论】:

    猜你喜欢
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 2016-12-10
    相关资源
    最近更新 更多