在JavaScript量角器中使用browser.wait()

时间:2018-12-09 06:14:07

标签: javascript jasmine protractor

对JavaScript量角器中的每个元素使用browser.wait()是一个好方法吗?他们还有其他更好的方法吗?

2 个答案:

答案 0 :(得分:1)

browser.wait() 您为Protractor/WebDriverJS提供了Expected Condition函数,以执行该函数,并等待该函数的结果评估为true。量角器将连续执行该函数,并在函数结果评估为true或达到可配置的超时后停止。

browser.wait(EC.textToBePresentInElement(element(by.binding('myvar')), "expected"), 5000, "Text is not something I've expected");

var EC = protractor.ExpectedConditions;

var anyTextToBePresentInElement = function(elementFinder) {
  var hasText = function() {
    return elementFinder.getText().then(function(actualText) {
      return actualText;
    });
  };
  return EC.and(EC.presenceOf(elementFinder), hasText);
};

答案 1 :(得分:-1)

如果要在找到每个元素之前先等待一下,则应该使用隐式等待。

description for implicit wait

如果不是在每个find元素上,则如果您正在使用带有某种条件的等待,例如,等待元素/元素可单击(预期条件)或喜欢页面包含某些内容[智能等待],那么它就很好,否则就不好了实现强硬等待的想法[browser.sleep()]。

请参考以下链接:-

Smart/Explicit waits