Protractor 量角器预期条件下的超时代表什么?

Protractor 量角器预期条件下的超时代表什么?,protractor,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

量角器: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');
坏定位器只是引用不存在的元素的xpath。但是在评估这一行时,测试会等待超过这一时间,直到达到jasmine defaultTimeoutInterval超时(我设置为25秒)。既然承诺在3秒钟内没有得到解决,为什么它在3秒钟内没有失败?我预计wait()会失败,第二个sendKeys命令会在控制流中执行,因为它是下一个命令


因此,上面的代码块将把“foo”打印到文本框中,并在下一个命令中等待jasmine超时出错(错误:timeout-在jasmine.DEFAULT\u timeout\u INTERVAL指定的超时内未调用异步回调)。我预计3秒内会出现错误。”bar'永远不会被打印。

这是超时,我的意思是,如果元素直到现在都不存在,3秒钟后它将超时。 对于您收到的jasmine错误,我建议您添加回拨

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

您也可以参考

它应该在3s时超时。你确定它没有在浏览器前排队。等等?@hankduan,是的,我确定。如果我将错误的定位器修改为有效的定位器并重新运行,测试将继续。我只是尝试了一下,效果不错。您能否指定a)量角器的版本,b)什么是
BAD-LOCATOR
和c)什么是
elem
?以下是我试图参考的内容(请使用http{colon}//www.angularjs.org,而不是复制缩写版本):browser.get(');var EC=量角器。预期条件;browser.wait(EC.presenceOf($('bad-locator')),3000@汉端。谢谢你的回复。我将更新我的原始帖子以回答您的问题。我认为
browser.wait()
还接受第三个参数,这是一个字符串,对应于等待超时时将显示的错误消息。如果添加该参数,是否显示错误消息?