java Chromedriver元素在点(xxx,yyy)处不可单击。其他元素将收到单击:
在将Chromedriver与Selenium一起使用时,我遇到了以下可怕的错误:
"org.openqa.selenium.WebDriverException: Element is not clickable at point (xxx, yyy). Other element would receive the click: ..."
我知道这已经讨论过了here
然而,我的情况是有点不同的意义上说,如果我把一个约5秒的延迟,然后点击它的工程罚款。我不需要做什么特别的事,就等着吧
我知道我可以通过使用JS或操作来强制点击,但我想要一种更优雅的方式来处理这个问题,即只有当按钮变得可点击时才点击按钮。问题是我不知道如何检查按钮是否可点击
我尝试了以下方法,但都没有成功:
1) ExpectedConditions.elementToBeClickable
2) ExpectedConditions.visibilityOf
有什么想法吗
# 1 楼答案
我可以想出两个你可以尝试的选择:
JavaScript
检查描述文档加载状态的
Document.readyState
属性:你可以等待它变得“完整”。在很多情况下可能不起作用,但值得一试
循环
这可能是最简单的解决方案。不确定其是否优雅,但应在不浪费时间的情况下完成工作(这只是一个非常基本的示例,此代码不应按原样使用):
# 2 楼答案
我使用自定义waitAndClick()方法处理此问题,该方法使用递归,如下所示:
int waitCounter=0