我的页面上有手风琴。当我尝试单击该元素时,出现错误:“在点(741,503)不可单击。其他元素将获得该单击”。 我觉得这是因为元素位置已从以前的手风琴面板开口改变了。
我已经尝试了所有提到的javascript和xpath解决方案。
代码没什么特别的:
driver.FindElement(By.Id("FirstPanel")).Click();
// click some things
// do an assert
driver.FindElement(By.Id("NextPanel")).Click(); <-- this is where it fails
实际消息(略作编辑):
消息:OpenQA.Selenium.ElementClickInterceptedException:元素单击被拦截:元素
<h4 id="MyElementId" data-toggle="collapse" data-target="#TargetName" style="cursor: pointer; color:#60a531;" class="">...</h4>
在点(741,503)不可单击。其他元素将获得点击:<div id="AnotherId">...</div>
(会话信息:chrome = 75.0.3770.142)
答案 0 :(得分:0)
失败可能是由于两个可能的原因
在执行第一条语句后执行一些单击时,DOM结构会更改,并且原始元素ID不可访问。在这种情况下,您可以轻松地对其进行调查。手动执行步骤,直到出现故障,然后使用firebug / chropath查看您的元素是否确实存在具有相同ID的
第二个可能的原因可能是您的元素被另一个元素覆盖,并且您没有在单击之前充分等待代码。这也可能意味着,如果您的UI包含iframe,则您执行的操作会将上下文从当前iframe更改为另一iframe。
您也可以尝试在代码中使用JavascriptExecutor单击此元素