使用量角器向下滚动

时间:2015-12-03 05:48:24

标签: angularjs protractor

错误:3005毫秒后等待超时

我使用window.scrollTo(0,200)向下滚动网页。代码如下:

browser.wait(function() {
          browser.executeScript('window.scrollTo(0,200);').then(function () {
          })
        }, 3000);
向下滚动

要求: NFAR它应该在等待3000毫秒后向上滚动。

要向上滚动,我编写了如下代码

browser.wait(function() {
          browser.executeScript('window.scrollTo(0,-200);').then(function () {
          })
        }, 10000);

多个browser.wait会导致错误吗?请提出一些最佳方法。

3 个答案:

答案 0 :(得分:3)

最后我找到了解决方案!!

我发现以下代码有助于删除错误。

var elm = element.all(by.css('.your-css-class')).get(9);
browser.executeScript("arguments[0].scrollIntoView();", elm.getWebElement());

elm.click();

基本上这可以让你滚动到你的视图..

答案 1 :(得分:3)

browser.wait不会等待'在执行一些动作之后。它是一个函数来保持重试函数,直到它返回true或达到指定的超时(如果达到超时它将引发错误)。

由于您没有在功能中返回任何内容,因此它将始终返回' undefined'因此永远不会是真的,并且会抛出它在3000毫秒内超时的错误。

您可能想要的代码使用browser.sleep

browser.executeScript('window.scrollTo(0,200);').then(function() {
    browser.sleep(3000);
}).then(function() {
    browser.executeScript('window.scrollTo(0,0);');
});

答案 2 :(得分:1)

量角器上有open issue与此有关。 也许这会对你有所帮助:

browser.executeScript('window.scrollTo(0,200);').then(function () {
    browser.executeScript('window.scrollTo(0,0);').then(function () {
        // ...
    })
})