Java Selenium WebDriver无法找到Selenium IDE可以找到的元素
这是我没想到会遇到的问题。 我正在Ubuntu11上的eclipse中使用JUnit4编写一个SeleniumWebDriver测试。我一直在使用Selenium IDE与firebug和firepath相结合,以确保我在JUnit测试中指定的XPath是正确的。我遇到的问题是,selenium IDE命令Java Selenium WebDriver无法找到Selenium IDE可以找到的元素,java,selenium,junit,selenium-ide,selenium-webdriver,Java,Selenium,Junit,Selenium Ide,Selenium Webdriver,这是我没想到会遇到的问题。 我正在Ubuntu11上的eclipse中使用JUnit4编写一个SeleniumWebDriver测试。我一直在使用Selenium IDE与firebug和firepath相结合,以确保我在JUnit测试中指定的XPath是正确的。我遇到的问题是,selenium IDE命令 command 'click' at target '//span[contains(text(),'MyTarget')]/PATHTOTARGET' 每次都会过去。但是,当我在webd
command 'click' at target '//span[contains(text(),'MyTarget')]/PATHTOTARGET'
每次都会过去。但是,当我在webdriver中使用以下命令时,它总是失败
driver.findElement(By.xpath("//span[contains(text(),'MyTarget')]/PATHTOTARGET")).click();
我已经使用Selenium IDE和Selenium Webdriver几个月了,所以我编写了自己的click命令,从未遇到过这种情况。有人知道这是什么原因吗
xpath在刷新时不会更改,每次都有效。我也尝试过等待页面上的所有内容加载而没有运气
edit1:这是由我们的应用程序的extJS上下文菜单的工作方式引起的问题。如果您从上下文菜单中选择一项,我们的应用程序将执行一些导致上下文菜单失去selenium焦点的工作。在选择新菜单项之前,先添加刷新,然后延长等待时间,效果最好。由于您遇到的异常是a,因此您似乎仍然太快了。说明:
您需要等待上一个操作完成,最好是等待该操作的某些结果。屏幕上有什么新东西吗?等等 这篇文章很旧,但我在寻找同一问题的答案时偶然发现了它。 所以我的解决方案可能会有帮助。 事实证明,我在页面中有一个框架,所需的元素就在这个框架内。 更重要的是,加载页面时,它不包含任何元素,只包含指向帧源的链接。 当我添加行时 驱动程序切换到帧(0)强>
一切正常。隐式等待设置为什么?顺便说一下,如果您被卡住了,您可以随时从
WebDriver
检索完整的页面源代码。谢谢您的评论!隐式等待设置为30秒。我将研究如何从WebDriver查看页面源代码。它是WebDriver.getPageSource()
,应该与FirefoxDriver一起使用getPageSource()获取页面源代码是一件非常简单的事情,但是当我保存WebDriver.getPageSource()的输出时到一个html文件,我能够找到我一直在寻找的目标。所以我一定是做错了什么。将再次查看我的等待页面加载函数。它是否会因NoTouchElementException
或其他原因而失败?是的,有时我会将findElement放入try while循环中,直到找到为止。