我有一个使用selenium测试我的ui的黄瓜脚本,如果我使用mvn在本地运行它,似乎运行得很好,但是如果我使用jenkins触发它,那么我会遇到上述错误。其他人看到过这个问题吗?
我尝试通过添加一个等待直到元素可见来解决此问题
下面是我的代码:
public void userClick() throws InterruptedException {
WebDriverWait w = new WebDriverWait(d, 10);
w.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[text()='Mine']/parent:span/parent::a")));
d.findElement(By.xpath("//span[text()='Mine']/parent::span/parent::a")).click();
Thread.sleep(2000);
}
答案 0 :(得分:0)
使用visibilityOfElementLocated
并遵循xpath代替elementToBeClickable
。
WebDriverWait w = new WebDriverWait(d, 20);
w.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[.//span[text()='Mine']]"))).click();
OR
WebDriverWait w = new WebDriverWait(d, 10);
w.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Mine']"))).click();
希望这对您有用。
答案 1 :(得分:0)
有时会发生这种情况,因为在其他地方运行测试时,会使用不同的窗口大小(尤其是在无头模式下),这会使UI组件在某些情况下彼此重叠。这使得它们中的一些与点击相交,而这些点击被假定会发送给其他组件。
在这里没有帮助。
解决方案是将屏幕大小显式设置为您的应用支持的最小尺寸。
答案 2 :(得分:0)
我意识到我的解决方案是问题chromeOptions.addArguments(window-size=1920,1080");