WebdriverIO 屏幕截图在等待执行条件后失败
WebdriverIO screenshot fails after waiting for execute condition
我正在尝试编写一个非常简单的 WebdriverIO 脚本,它将命中 URL,等待 JS 中的某些条件为真(例如,正在设置一个全局变量)并在它为真时截取屏幕截图真的。但是 waitUntil
正在抛出一个错误 "CommandError: Promise never resolved with an truthy value"。下面是我的脚本的简化版本:
"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;
”,但这表明执行显然会 return 一个真实值。
如果我删除对 screenshot()
的调用,则不会出现错误。
我已经尝试为 waitUntil()
设置一个高超时值,并且我已经尝试 return 从 .execute()
调用中获取实际的 result.value -- 都没有有帮助。
好吧,凭直觉我尝试了一些东西。我没有调用 client.execute()
,而是调用了 this.execute()
。出于某种原因,这奏效了。我对原因的唯一猜测是 waitUntil 在与 client
分开的特殊上下文中执行自身,并且该上下文是它期望以某种方式承诺的内容。
我正在尝试编写一个非常简单的 WebdriverIO 脚本,它将命中 URL,等待 JS 中的某些条件为真(例如,正在设置一个全局变量)并在它为真时截取屏幕截图真的。但是 waitUntil
正在抛出一个错误 "CommandError: Promise never resolved with an truthy value"。下面是我的脚本的简化版本:
"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;
”,但这表明执行显然会 return 一个真实值。
如果我删除对 screenshot()
的调用,则不会出现错误。
我已经尝试为 waitUntil()
设置一个高超时值,并且我已经尝试 return 从 .execute()
调用中获取实际的 result.value -- 都没有有帮助。
好吧,凭直觉我尝试了一些东西。我没有调用 client.execute()
,而是调用了 this.execute()
。出于某种原因,这奏效了。我对原因的唯一猜测是 waitUntil 在与 client
分开的特殊上下文中执行自身,并且该上下文是它期望以某种方式承诺的内容。