2015-12-03 64 views
0

错误了:等待后3005ms向下滚动,并使用量角器

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

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

需要量:向下滚动后NFAR。在等待3000ms后它应该向上滚动。

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

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

是多browser.wait造成的错误?请建议一些最好的方法来做同样的事情。

回答

2

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);'); 
}); 
1

关于量角器有一个open issue与此有关。 也许这将帮助你:

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

我的问题是**等一下3005ms后超时**,你提到的悬而未决的问题是所有关于**元素不可点击**, –

3

最后我发现我的解决方案!

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

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

elm.click(); 

基本上这允许你滚动到你的看法..