我想单击以下按钮,定位器:
css div.d-flex > [_ngcontent-c1] > .navbar-toggler
和Xpath //div[@class='container d-flex justify-content-between']/span[1]/a[1]
我还使用以下命令更新了chrome驱动程序:webdriver-manager update
然后,我有:chromedriver_79.0.3945.36版本
geckodriver版本v0.26.0
Chome版本79.0.3945.88
运行量角器时,出现错误:
失败:元素单击被拦截:元素...在点(1157,20)不可单击。其他 元素将获得点击:... (会议信息:chrome = 79.0.3945.88) (驱动程序信息:chromedriver = 79.0.3945.16(93fcc21110c10dbbd49bbff8f472335360e31d05-refs / branch-heads / 3945 @ {#262})),平台= 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})),平台= Windows NT 10.0.18362 x86_64)
有趣的是,单击此按钮在页面的其他部分也起作用。
答案 0 :(得分:3)
此错误与Chrome版本无关。问题在于您要单击的元素上方有另一个元素。在外观上可能看起来不像它,但是在该元素上方可能有一个容器或一个Web元素。查看您是否可以找到哪个元素将获得点击。您可能可以在错误日志中找到它。看看单击该元素是否会给您所需的结果。
答案 1 :(得分:1)
使用javascript执行程序单击元素:
browser.executeScript('arguments[0].click();', elem);