gpt4 book ai didi

protractor - 防止 Protractor 在 promise 被解决之前完成

转载 作者:行者123 更新时间:2023-12-04 00:56:15 25 4
gpt4 key购买 nike

我有一些异步 WebDriverJS 处理被跳过,因为测试在它们被解析之前就完成了。我如何让 Protractor 等待?

例如:(这两个测试都应该失败(potential ticket submitted)

  it('test promise ', function (done) {
var d = protractor.promise.defer();
d.fulfill(true)
d.promise.then(function (item) {
console.log("fulfill", item);
});
expect(d.promise)
.toBe(false);
console.log("test done");
});

it('test promise with timeout ', function (done) {
var d = protractor.promise.defer();
setTimeout(function () {
console.log("fulfill");
d.fulfill(true)
}, 3000);

d.promise.then(function (item) {
console.log("fulfill", item);
});
expect(d.promise)
.toBe(false);
console.log("test done");
});

如果您需要更多信息,请与我们联系 ... ?

这将返回true..如果您删除超时并设置完成它将起作用...

最佳答案

Protractor 侧

对此的修复是 merged 11 days ago

您可以使用 createFlow但解决方案会简单得多,只需调用 done()fulfill 之后像这样:

it('test promise with setTimeout ', function(done) {
var d = protractor.promise.defer();
setTimeout(function() {
console.log("fulfill");
d.fulfill('ok');
done();
}, 3000);
expect(d).toBe('ok');
});

目前在 master 分支上,所以预计会在 protractor >= 0.23.0 中发货

Web 应用端(内容丰富)

Protractor doesn't know how to wait for setTimeout

但是 does know how to wait for $timeout

关于protractor - 防止 Protractor 在 promise 被解决之前完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22330831/

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