【发布时间】:2019-10-02 18:22:47
【问题描述】:
尝试查找元素时出现以下错误。在这里,我想在找到 web 元素后填充文本。
我可以通过 chrome 控制台找到 xpath,我遇到了这个问题。关于这个问题有一些帖子,但是大多数都与appium有关,与我无关。
util.driver.switchTo().defaultContent();
util.driver.switchTo().frame(0);
util.driver.findElement(By.xpath("//label[text()='Reason for Escalation']/following-sibling::div/input"));
错误信息:
org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {error=no such element, message=no such element: Unable to locate element: {"method":"xpath","selector":"//label[text()='Reason for Escalation']/following-sibling::div/input"}
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:324)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:419)
at org.openqa.selenium.By$ByXPath.findElement(By.java:353)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:309)
Caused by: java.lang.ClassCastException: com.google.common.collect.Maps$TransformedEntriesMap cannot be cast to org.openqa.selenium.WebElement
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:322)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:419)
at org.openqa.selenium.By$ByXPath.findElement(By.java:353)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:309)
页面上有 3 个 iframe,正在访问的元素位于第一页
【问题讨论】:
-
如果你写你想要的东西,你的代码,如果可能的话,html会更有帮助
-
调用
driver.switchTo().frame(0)时可能会发生错误。如果帧切换没有正确运行,驱动程序视图将处于错误的上下文中,因此下一个运行的driver.findElement将遇到错误。如果您为尝试自动化的页面发布了一些 HTML,我们可以对其进行整理。 -
@Christine 添加了截图。
-
@kps 我添加了一个在这两个项目上调用 WebDriverWait 的解决方案。如果失败,您可以尝试在此处发布您尝试定位的
input元素的 HTML。
标签: selenium selenium-webdriver salesforce-lightning