我正在创建一些phpunit脚本,使用Selenium 2测试一些网站。 这些测试是使用 chrome 浏览器执行的。测试1是确认它可以使用xPath在页面上找到链接,然后单击该链接。但间歇性地,测试将失败并报告错误:
PHPUnit_Extensions_Selenium2TestCase_WebDriverException: unknown error: Element <a href="" ng-click="select()" uib-tab-heading-transclude="" class="ng-binding"> ...</a> is not clickable at point (708, 139). Other element would receive the click: <div class="modal-screen" style=""></div>
我已经下载了最新的chromedriver,但仍然收到此错误。 有没有人遇到过这个错误? 您是如何解决这个问题的?
谢谢
错误消息解释了问题
元素。。。在点 (708, 139( 处不可单击。其他元素将收到点击:
<div class="modal-screen" style=""></div>
问题是您尝试单击的元素具有另一个元素,DIV
,在其顶部阻止您尝试单击。根据我的经验,这通常是由对话框或其他 UI 元素位于所需元素之上引起的。在您的情况下,查看DIV
元素的 HTML,看起来某些模态对话框后面的灰色背景是罪魁祸首。如果我猜的话,有几种可能性:
- 对话框已启动
- 您关闭了一个对话框,但它还没有完全消失
- 出现了一些加载等微调器,您在它消失之前单击了它
要解决#1,只需关闭对话框。您可能需要等待对话框不可见,请参阅 #2。
要解决 #2 或 #3,只需等待DIV
不可见并继续测试。您应该能够使用WebDriverWait
并等待CSS选择器,div.modal-screen
不可见。