【问题标题】:Unable to locate image xpath in Selenium Java无法在 Selenium Java 中找到图像 xpath
【发布时间】:2019-12-03 23:51:54
【问题描述】:

我在使用 xpath 无法定位元素时遇到了一些问题,如果有人知道问题可能是什么,我正在寻找一些输入。这是我试图访问的元素。

<body id="tinymce">
  <p>
    <img class="some-class-name" src="/path/to/url" data-macro-name="macro-name" data-macro- 
     parameters="macro|params" data-macro-schema-version="1">
    <span id="_caret" data-mce-bogus="true" style=""><u></u></span>
  </p>
</body>

这是我必须找到并使用它的页面对象代码。

@FindBy(xpath = "//*[@id=\"tinymce\"]/p/img")
private WebElement cnfGraph;

public void verifyGraphEditPresent()  {
    WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(ExpectedConditions.visibilityOf(cnfGraph));
}

我不断收到以下错误

no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="tinymce"]/p/img"}

我也尝试将定位器更改为图像的类名或主体的 id,但没有任何反应。

感谢任何帮助或建议。谢谢

【问题讨论】:

  • 您的开始正文标签缺少&gt;,这是一个错字还是代码实际上是这样的?你也检查过 iframe 吗?您是否尝试过使用' 而不是\"
  • 是一种类型,已更新。进一步查看 html,我可以看到所有这些都在 iframe 中。将尝试将 xpath 定位器中的语法更改为 ' 并查看是否有帮助
  • 如果代码在 iframe 中,您需要将驱动程序上下文切换到该 iframe,您的原始 xpath 可能会正常工作。见此链接:stackoverflow.com/a/24254740/11865571
  • github.com/SeleniumHQ/selenium/issues/4385 建议你需要使用 ExpectedConditions.visibilityOfElementLocated
  • 切换到 iframe 解决了我的问题,感谢您提供的信息,这是一次宝贵的经验教训!

标签: java selenium selenium-webdriver


【解决方案1】:

我能够通过将驱动程序切换到 html 所在的 iframe 来解决此问题。

public void verifyGraphEditPresent()  {
    driver.switchTo().frame(driver.findElement(By.id("wysiwygTextarea_ifr")));
    WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(ExpectedConditions.visibilityOf(cnfGraph));
    driver.switchTo().defaultContent();
} 

解决方案来自 @MentallyRecursive 在 cmets 中提供的 https://stackoverflow.com/a/24254740/11865571

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2021-01-02
    • 1970-01-01
    相关资源
    最近更新 更多