我想点击以下按钮,定位器:
cssdiv.d-flex > [_ngcontent-c1] > .navbar-toggler
和Xpath//div[@class='container d-flex justify-content-between']/span[1]/a[1]
我还使用命令更新了 chrome 驱动程序:网络驱动程序管理器更新
然后,我有: 版本 chromedriver_79.0.3945.36 壁虎驱动程序版本 v0.26.0
丁目 版本 79.0.3945.88
当我运行量角器时,我得到错误:
失败:元素单击被拦截:元素...在点 (1157, 20( 处不可单击。其他 元素将收到点击:... (会话信息:chrome=79.0.3945.88( (驱动程序信息: chromedriver=79.0.3945.16 (93fcc21110c10dbbd49bbff8f472335360e31d05-refs/branch-heads/3945@{#262}(,platform=Windows NT 10.0.18362 x86_64(
这是我尝试过的代码:
it('should return to the main menu', function () {
browser.driver.manage().window().setSize(1284, 684);
var until = protractor.ExpectedConditions;
var EC = protractor.ExpectedConditions;
var elem = element(by.css('span:nth-of-type(2)>span>a>svg'));
browser.driver.wait(function () {
browser.wait(EC.visibilityOf(elem), 10000);
return elem;
});
elem.click();
})
原始代码(无需等待(是
it('should return to the main menu', function () {
element(by.css('.fa-chevron-left')).click();
});
然后,我收到此错误:
失败:元素单击被拦截:元素...在点 (137, 23( 处不可点击。其他 元素将收到点击:... (会话信息:chrome=79.0.3945.88( (驱动程序信息: chromedriver=79.0.3945.16 (93fcc21110c10dbbd49bbff8f472335360e31d05-refs/branch-heads/3945@{#262}(,platform=Windows NT 10.0.18362 x86_64(
有趣的是,单击此按钮正在页面的其他部分工作。
此错误与 chrome 版本无关。问题是您尝试单击的元素在其上方有另一个元素。这可能在视觉上看起来不像,但可以在该元素上方有一个容器或 Web 元素。看看你是否能找到哪个元素会收到点击。您也许可以在错误日志中找到它。查看单击该元素是否会为您提供所需的相同结果。
使用 javascript executor 单击元素:
browser.executeScript('arguments[0].click();', elem);