Selenium点击并不总是有效
我有一些点击选项卡的测试,但并不总是执行点击。
-
xpath在测试工作的大部分时间都是正确的
-
这不是一个计时问题,因为我使用thread.sleep()和其他方法来确保元素在单击之前可见
-
测试认为它正在执行点击,因为它不会在“执行”点击时抛出ElementNotFoundException或任何其他exception。 由于选项卡内容不会更改,因此稍后在单击后测试失败。
进一步的信息我使用Selenium 2.44.0来实现在Chrome 44.0.2403.107 m上运行的Java测试。
我还能做些什么,或者这可能成为selenium的问题?
您可以尝试以下几种方法:
-
一个明确的
elementToBeClickable
等待:WebDriverWait wait = new WebDriverWait(webDriver, 10); WebElement button = wait.until(ExpectedConditions.elementToBeClickable(By.id("myid"))); button.click()
-
在点击之前移动到元素:
Actions actions = new Actions(driver); actions.moveToElement(button).click().build().perform();
-
通过javascript进行点击:
JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript("arguments[0].click();", button);
如果选项卡名称包含任何唯一字符串,则可以使用linkText
。 并确保您的标签不是动态的。 它应该在源代码中可见(手动源代码( ctrl+u
))。
- java.lang.IllegalArgumentException:当我使用reflection时,object不是声明类的实例
- Jersey:将值从ContainerRequestFilter传递到端点