java - 即使 xpath 正确也无法找到元素

标签 java selenium selenium-webdriver

enter image description here

我尝试从自动建议字段中选择一个元素,但总是出现错误,提示即使我确定我的 xpath 是正确的,也无法找到该元素

这是我的代码:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@class=\"ui-menu-item-with-icon ui-menu-item\"][1]")));

driver.findElement(By.xpath("//*[@class=\"ui-menu-item-with-icon ui-menu-item\"][1]")).click();

它应该找到//* @class=\"ui-menu-item-with-icon ui-menu-item\"这是阿尔伯特·卡姆斯的第一个建议

这是外部Html

<li class="ui-menu-item-with-icon ui-menu-item" role="menuitem">
  <a class="ui-corner-all" tabindex="-1">
    <span class="item-icon"></span>
    Albert Camus (SARCELLES)</a>
</li>"

最佳答案

除了使用通配符可能会导致处理时间更长之外,您的 XPath 或多或少都可以,因此您可以使用 li而不是*

另一个选择是坚持 <a> tag containing the text您想使用 normalize-space() function 单击像这样:

//a[normalize-space()="Albert Camus (SARCELLES)"]

enter image description here

此外,您的弹出窗口可能位于 iframe 内所以你可能必须 switch the webdriver context到相关的 iframe 元素。

关于java - 即使 xpath 正确也无法找到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56152491/

相关文章:

带有 printf 的 Java StringBuilder。等效的 String.format

Python 3.5 - "Geckodriver executable needs to be in PATH"

java - 运行 Selenium GUI 测试后回滚数据库

java - 如何使用 ReportNG 在 selenium webdriver 中截取失败测试的屏幕截图

selenium-webdriver - 无法在 selenium webdriver 中实例化类型 Select

java - java 中的另一个深度优先搜索问题

java - 显示由 Web 服务生成的 jasper 报告

Python with Selenium - 由于网站上位置的随机化,无法找到并单击此特定元素

java - 如何为可见的弹出窗口应用条件,

java - 自定义 UI 布局的技术