量角器预期条件下的超时是什么意思?

时间:2015-03-25 00:30:47

标签: protractor

量角器:版本1.8.0

browser.wait(EC.presenceOf(element), 3000);

3秒代表什么?并且当3秒过去并且找不到元素时是否抛出错误?或测试是否继续?

我用以下方式进行了测试:

element(by.id('#input')).sendKeys('foo');    
browser.wait(EC.presenceOf(element(by.xpath(BAD-LOCATOR)), 3000));
element(by.id('#input')).sendKeys('bar');

BAD-LOCATOR只是一个引用不存在的元素的xpath。但在评估此行时,测试会等到超过此时间,直到达到jasmine defaultTimeoutInterval超时(我设置为25秒)。为什么它在3秒内没有失败,因为承诺没有在3秒内得到解决?我期待wait()失败,第二个sendKeys命令在控制流程中执行下一个命令。

因此上面的代码块将'foo'打印到文本框中,并在下一个命令中等到jasmine超时错误输出(错误:超时 - 在jasmine.DEFAULT_TIMEOUT_INTERVAL指定的超时内未调用异步回调。)。我期待3秒内的错误。 'bar'never得到印刷。

1 个答案:

答案 0 :(得分:0)

这是超时,我的意思是3秒后,如果元素不存在,直到现在它将超时。 对于茉莉花的错误,我建议您添加回电

 describe("long asynchronous specs", function() {
    beforeEach(function(done) {
      done();
    }, 1000);

您还可以参考Jasmine Asynchronous Support