所以我在Circle上测试时收到此错误,但在生产中没有。我安装了npm,安装了bower,npm更新了,bower更新了,npm运行update-webdriver。
[chrome #1a] UnknownError: unknown error: Element is not clickable at point (1652, 61). Other element would receive the click: <div class="md-toolbar-tools">...</div>
[chrome #1a] (Session info: chrome=43.0.2357.130)
[chrome #1a] (Driver info: chromedriver=2.14.313457 (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Linux 3.13.0-76-generic x86_64
我不确定为什么这个元素在制作时不会被点击,但对于本地来说会很好。我尝试添加一些等待,但我不认为这是问题。我已经看过围绕元素的其他问题,但是它们似乎都是根本无法点击的情况,而不是只在特定环境下工作。
我的页面对象如下所示:
'use strict';
var myObject = function () {
this.thing1 = element(by.css('md-list'))
this.thing2 = this.thing1.element(by.css('md-list-item'))
this.thing3 = this.thing2.element(by.css('button div div h4'))
this.thing4 = this.thing2.element(by.css('button div md-menu button'))
};
module.exports = new myObject();
我的规格看起来像这样,错误发生在点击线上。
describe('Object directive', function () {
var myObject;
browser.driver.manage().window().setSize(1920, 1080);
browser.get('/#/login');
browser.waitForAngular();
myObject = require('./myobject.po.js');
it('should rename', function () {
myObject.thing4.click();
element(by.css('[aria-label=\'Rename Button\']')).click();
element(by.css('input')).clear();
element(by.css('input')).sendKeys('Test Name');
element(by.css('[ng-click="saveName()"]')).click();
expect(myObject.thing3.getText()).toBe('Test Name');
});
it('should delete', function () {
myObject.thing4.click();
element(by.css('[aria-label=\'Delete Button\']')).click();
expect(element(by.css('md-dialog-content div p')).getText()).toBe('Do you want to permanently delete?');
element(by.css('[ng-click="dialog.abort()"]')).click();
});
});
答案 0 :(得分:1)
看起来硒认为某些元素与所需元素重叠,它会发生。
您可以尝试多种方法:
通过JS click()
进行点击(参见区别:WebDriver click() vs JavaScript click()):
browser.executeScript("arguments[0].click()", elm.getWebElement());
使用浏览器操作:移至元素,然后点击:
browser.actions().mouseMove(elm).click().perform();