微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Selenium WebDriver找不到Selenium IDE可以找到的Element

这是我不希望遇到的问题.
我正在Ubuntu 11上的eclipse中使用JUnit 4编写一个selenium Webdriver测试.我一直在使用Selenium IDE结合firebug和firepath来确保我在JUnit测试中指定的xpath是正确的.我遇到的是selenium IDE命令的问题,

command 'click' at target '//span[contains(text(),'MyTarget')]/PATHTOTARGET'

每次都过去.但是,当我在webdriver中使用以下内容时,它总是失败

driver.findElement(By.xpath("//span[contains(text(),'MyTarget')]/PATHTOTARGET")).click();

我已经使用Selenium IDE和Selenium Webdriver几个月了,所以写了我的点击命令份额,从来没有遇到过这个问题.任何人都知道是什么原因造成的?

xpath在刷新时不会改变,每次都有效.我也试过等待页面上的所有内容加载而没有运气.

edit1:这是我们的应用程序的extJS上下文菜单工作方式引起的问题.如果您从上下文菜单中选择了一个项目,我们的应用程序将执行一些工作,导致上下文菜单脱离selenium的焦点.在选择新菜单项之前添加刷新然后延长等待是最好的.

解决方法:

你得到的例外是StaleElementReferenceException,看起来你还是太快了.说明:

>元素位于您正在使用的页面上.
>您点击某些内容,页面开始重新加载.
>但在重新加载之前,WebDriver已经找到了你的错误元素(它没有等待之前的行动因某种原因完成).
>然后页面最终重新加载,WebDriver尝试单击以前找到的元素…现在不存在,因为它在上一页(即使它现在也在那里).

您需要等待上一个操作完成,最好等待操作的某些结果.屏幕上有新内容吗?等等!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐