UnknownError:未知错误:元素在点(713,6)处不可点击。其他元素将收到点击:<div class =“container”> ... </div>

时间:2015-06-29 16:42:34

标签: angularjs protractor

我得到了非常奇怪的错误。在我的测试中,我首先导航到angularjs.org。然后我将Keys()发送到一个名为&#34; JavaScript Projects&#34;里面有过滤器。之后,我单击一个复选框并将待办事项标记为完成。但是,这样做会导致错误,

  

UnknownError:未知错误:元素在点(713,6)处无法点击。其他元素会收到点击:...     (会话信息:chrome = 43.0.2357.81)

如果我颠倒上面执行的顺序,则不会发生错误。

这是我的代码

var util = require ('util');
describe ("Page object text", function() {
var homepage = require('../pages/angularjs_page.js');
it ("Should mark an item done", function() {
    homepage.get();
    browser.sleep(2000);
    homepage.searchText('jquery');
    homepage.markDoneTodo(0);
});  
});

这是页面对象代码:

var angularjs_page = function() {
    this.get = function() {
        browser.get('http://www.angularjs.org');
    };
    this.markDoneTodo = function(index) {
        element.all(by.repeater('todo in todoList.todos'))
            .get(index)
                .element(by.model('todo.done'))
                    .click();
    };
    this.searchText = function(txt) {
        element(by.model('projectList.search')).sendKeys(txt);
    };
};
module.exports = new angularjs_page();

最大化浏览器窗口不起作用。 Sleep()似乎不会导致此问题。在两者之间插入一个sendKey()方法可以正常工作。

browser.sleep(2000);
    homepage.searchText('jquery');
    homepage.enterName("Hello World");
    homepage.markDoneTodo(0);

那么,按顺序执行searchText()和markDoneTodo()方法有什么问题?

发现问题 事实证明,静态顶部导航菜单栏与复选框重叠。滚动是解决它的最佳方法,以及如何?

1 个答案:

答案 0 :(得分:1)

使用滚动解决了问题。

browser.executeScript('window.scrollTo(0,document.body.scrollHeight)');