硒元素不可点击

时间:2020-09-30 20:43:56

标签: java selenium jenkins cucumber

我有一个使用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);
}

3 个答案:

答案 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");