这是我没想到会遇到的问题。我正在 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 焦点的工作。在选择新菜单项之前添加刷新然后延长等待效果最好。