【发布时间】:2012-08-08 03:27:58
【问题描述】:
我只在 Chrome 中看到这个。
完整的错误信息如下:
“org.openqa.selenium.WebDriverException:元素在点 (411, 675) 处不可点击。其他元素将收到点击:...”
“将收到点击”的元素位于相关元素的一侧,而不是在它的顶部,也不是重叠,也不是在页面上移动。
我尝试添加偏移量,但这也不起作用。该项目在显示的窗口中,无需滚动。
【问题讨论】:
-
您是否等待页面加载?也许其他元素在页面加载时与它重叠?
-
对于那些刚刚到达的人来说长话短说 - 该元素在页面上不可见,因此不可点击。您需要通过发射 window.ScrollTo 来滚动视口。
-
@ChrisB.Behrens 并非总是如此。当一个元素被另一个元素覆盖时,也会给出这个特定的错误。当我试图单击一个按钮时,我遇到了这个异常,该按钮是另一个位置固定的元素。
-
它不仅 Chromedriver- 与 Firefox 有同样的问题。正如上面其他人所建议的那样,我通过延迟等待页面完全重新加载来解决了这个问题。
-
我认为发出 scrollTo 或进行任何等待是绝对错误的建议。看起来 selenium click 的算法是: 1. 计算元素位置 2. 滚动到这个位置(所以你不需要自己发出) 3. 点击到这个位置(异常来自最后一个断言,它检查什么元素站在这个位置在实际点击事件发送之前的位置)我的建议是:1.检查元素是否在您的视口内。 2.检查元素是否被任何其他元素覆盖(如粘性菜单),如果有则隐藏它们,或者在点击之前手动滚动而不依赖内置的scrollTo。
标签: google-chrome selenium selenium-webdriver automated-tests