量角器:版本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得到印刷。
答案 0 :(得分:0)
这是超时,我的意思是3秒后,如果元素不存在,直到现在它将超时。 对于茉莉花的错误,我建议您添加回电
describe("long asynchronous specs", function() {
beforeEach(function(done) {
done();
}, 1000);