gpt4 book ai didi

Protractor 在预期条件下的超时代表什么?

转载 作者:行者123 更新时间:2023-12-01 06:25:33 25 4
gpt4 key购买 nike

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 秒)。既然 promise 没有在 3 秒内得到解决,为什么它不会在 3 秒内失败?我期待 wait() 失败,并且第二个 sendKeys 命令在控制流中的下一个命令执行。

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

最佳答案

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

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

也可以引用 Jasmine Asynchronous Support

关于 Protractor 在预期条件下的超时代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29245473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com