虽然我使用的是带有firefox(ubuntu)46的量角器,但我所有的测试都是绿色的,但是当我使用chrome时,其中一些失败因为browser.executeScript('window.scrollTo(0,10000);');
命令无法正常工作。我试图使用:
var elm = element(by.sth)
browser.executeScript("arguments[0].scrollIntoView();", elm.getWebElement());
或
scrollIntoView : function(){ arguments[0].scrollIntoView(); }
但他们也没有工作。
我的第二个问题是,当我尝试在Windows上开始相同的测试时,他们都因为缺少定位器而失败等等。这是因为浏览器的结构差异还是我的测试写得不好。
答案 0 :(得分:1)
我解决了问题。
问题在于承诺,我们必须将browser.executeScript('window.scroll(0,600);')
视为承诺,所以如果测试太快,它就会失败。
解决方案正在使用:
browser.executeScript('window.scroll(0,600);').then(function(){
return this;
});
它还解决了丢失定位器的问题,因为有时间在Windows上加载。
答案 1 :(得分:0)
您确定需要使用scrollIntoView吗?我在我测试的应用程序中有滚动条,但是Protractor会在需要时自动滚动。
否则,了解有关失败的更多详细信息会很有帮助。你得到什么错误信息?在什么情况下称为你的功能?您的代码摘录可能有所帮助。