等待编程滚动硒/量角器

时间:2016-01-15 00:17:04

标签: javascript angularjs selenium protractor

我有一个应用程序,其中包含一个单击按钮,使用JS滚动页面。

我得到一个“元素在点(某点,某点)不可点击”错误,我认为这是因为selenium /量角器不知道动态滚动因此不等待它,我该如何设置在尝试下一步行动之前要等待的具体时间?

2 个答案:

答案 0 :(得分:0)

您可以使用protractor expected conditions之类的

var EC = protractor.ExpectedConditions;

buttonThatScrolls.click();
var nextElement = $('#xyz'));
browser.wait(EC.presenceOf(nextElement), 10000);
nextElement.click();

答案 1 :(得分:0)

在点击:

之前,您可能还需要移动到元素
browser.actions.mouseMove(elm).perform();

scroll into it's view

browser.executeScript("arguments[0].scrollIntoView();", elm);

请注意,有一个hacky变通方法 - 点击元素通过javascript

browser.executeScript("arguments[0].click();", elm);

可能会按原样运作,但请确保您知道其中的差异:

而且,为了添加@nilesh的答案,elementToBeClickable expected condition听起来更适合这种特殊情况:

browser.wait(EC.elementToBeClickable(elm), 5000);