我正在使用Javascript创建一系列Javascript自动化测试 / Selenium / WebdriverIO。我在使用WebdriverIO的'execute'命令时遇到了严重问题。正在使用命令'execute',因为一个基本问题是不在窗口的可见区域内的元素不可点击,使得自动化无用,因为它每次都失败。为了克服这个可视区域问题,我在调用'click'命令之前使用'execute'来'scrollIntoView'任何麻烦的元素。在简单的情况下,这很好。除非通过从PageA导航到PageB的单击分隔,否则多个顺序执行命令可以工作。此导航似乎打破了执行流程。我的想法是执行Javascript可能被注入到当前页面中,因此导航会使脚本失效。我真的不确定!
还有其他人有这样的问题吗?如果是这样,请帮助,它让我疯了!
此代码有效:
module.exports = {
runMacro: function(){
browser
.execute(function() {
var els = document.getElementsByClassName('img-cnt');
els[0].scrollIntoView();
})
.pause(3000) // for testing purposes
.execute(function() {
// this code executes
})
}
};
此代码不起作用:
module.exports = {
runMacro: function(){
browser
.execute(function() {
var els = document.getElementsByClassName('img-cnt');
els[0].scrollIntoView();
})
.click('.img-cnt')
.pause(3000) // for testing purposes - in real test would for waitForExists or similar
.execute(function() {
// this code doesn't execute
})
}
};
感谢!!!!