【问题标题】:Webdriver - Cannot locate Xpath/CSS getting NoSuchElementException [duplicate]Webdriver - 无法找到 Xpath/CSS 获取 NoSuchElementException [重复]
【发布时间】:2018-11-04 07:18:03
【问题描述】:

我是 selenium 的新手,并试图为下面的 html 代码找到正确的 xpath 或 CSS,在花了这么多时间和无数次试验之后,我无法点击这些元素,我需要一些帮助。我似乎在这里缺少一些非常基本的东西。我得到 NoSuchElementException。

第一个 HTML:

<input class="form-control" id="name" name="name" value="" type="text">

我尝试了以下代码:

driver.findElement(By.xpath("//*[@id="name"]")).sendKeys("Something");
driver.findElement(By.id("name")).sendKeys("Something");
driver.findElement(By.cssSelector("input[value='']")).sendKeys("Something");

第二个 HTML:

<a href="#fragment2" data-toggle="tab" aria-expanded="true">
   <span>Module Permissions</span>
</a>

我尝试了以下代码:

driver.findElement(By.xpath("//span[contains(text(), 'Module Permissions')]")).click();
driver.findElement(By.linkText("Module Permissions")).click();

我的测试环境:

  1. 谷歌浏览器版本 66.0.3359.181
  2. Selenium WebDriver 版本:3.12

非常感谢任何帮助。

【问题讨论】:

  • 你在 iframe 中吗?
  • 搜索是否有`标签:frame或iframe`在整个页面的HTML?如果是这样,您需要先切换到元素所在的框架。
  • 是的,我实际上是在 iframe 中。一旦我切换到 iframe,我就可以点击该元素。感谢您的建议。

标签: java selenium selenium-webdriver xpath css-selectors


【解决方案1】:
  1. 您在发送密钥之前似乎遇到了错误。那只是代码吗?只输入标签?如果是这种情况,那么试试这个。

    driver.findElement(By.cssSelector("input")).sendKeys("Something");
    
  2. 试试这个。

    driver.findElement(By.cssSelector("a")).click();
    

如果你提供页面的链接或页面的整个html会更好

【讨论】:

    猜你喜欢
    • 2022-06-23
    • 1970-01-01
    • 2019-06-29
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 2019-08-25
    相关资源
    最近更新 更多