我有一个正在使用 java 和 selenium 进行的项目。在 UI 模式下测试工作正常。但是在无头模式下我得到这个错误
org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element <label _ngcontent-yrc-c26="" formcontrolname="reportingDealPermission" nz-checkbox="" class="ant-checkbox-wrapper ng-untouched ng-pristine ng-valid" ng-reflect-name="reportingDealPermission">...</label> is not clickable at point (161, 562). Other element would receive the click: <div _ngcontent-yrc-c26="" class="footer">...</div>
我该如何解决这个问题(在 UI 模式下工作)。这是我的代码
WebDriver driver = getWebDriver();
WebElement element;
Thread.sleep(60000);
element = driver.findElement(By.xpath("//label[@formcontrolname='reportingDealPermission']"));
element.click();
为什么在硒中没有移动到元素并打破所有层的操作。这是用户界面。这是在 UI 模式下工作,在 headless 模式下不工作,休眠了 6 分钟但没有解决,所以这不是时间问题
原文由 Bastian 发布,翻译遵循 CC BY-SA 4.0 许可协议
这个错误信息…
…意味着对所需元素的 点击 被其他元素拦截。
单击一个元素
理想情况下,在调用
click()
任何元素时,您需要为elementToBeClickable()
引入 WebDriverWait 并且您可以使用以下任一 定位器策略:cssSelector
:xpath
:更新
在更改为 无头 后,如果它仍然不起作用并且仍然出现异常,那么还有一些其他措施需要考虑如下:
Headless 模式下的 Chrome 浏览器 不会以最大化模式打开。因此,您必须使用以下任一命令/参数来最大化无头浏览器 视口:
start-maximized
--window-size
setSize()
此外,您还可以在尝试
click()
之前使用 ExpectedConditionsinvisibilityOfElementLocated
等待 _拦截元素不可见_,如下所示:cssSelector
:xpath
:参考
您可以在以下位置找到几个相关的相关讨论: