我试图编写一个非常简单的WebdriverIO脚本来点击一个URL,等待某些条件在JS中成立(例如设置一个全局变量),并在它成立后进行截屏。但是db.students.update({ _id : 139 }, {$pull : { scores: {type :'homework' }}})
正在抛出一个错误说" CommandError:Promise永远不会以真正的价值来解决#34;。以下是我的脚本的简化版本:
waitUntil
我的实际情况当然不仅仅是" "use strict";
var webdriverio = require('webdriverio');
var client = webdriverio.remote({
desiredCapabilities: {
browserName: 'chrome',
},
})
.init()
.url("https://google.com")
.waitUntil(
function() {
return client.execute(
function() {
return true;
}
);
}
)
.screenshot();
",但这表明执行显然会返回真值。
如果我删除了对return true;
的调用,则不会显示错误。
我已尝试为screenshot()
设置较高的超时值,并且我已尝试从waitUntil()
调用中返回实际的result.value - 两者都没有帮助。
答案 0 :(得分:0)
好的,在预感中,我尝试了一些东西。我打电话给client.execute()
,而不是打电话给this.execute()
。出于某种原因,这是有效的。我唯一的猜测是,waitUntil在一个独立于client
的特殊上下文中执行自己,并且该上下文是它在某种程度上所期望的承诺。