我得到了非常奇怪的错误。在我的测试中,我首先导航到angularjs.org。然后我将Keys()发送到一个名为" JavaScript Projects"里面有过滤器。之后,我单击一个复选框并将待办事项标记为完成。但是,这样做会导致错误,
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()方法有什么问题?
发现问题 事实证明,静态顶部导航菜单栏与复选框重叠。滚动是解决它的最佳方法,以及如何?
答案 0 :(得分:1)
使用滚动解决了问题。
browser.executeScript('window.scrollTo(0,document.body.scrollHeight)');