等待执行条件后,WebdriverIO屏幕截图失败

时间:2015-08-22 21:27:53

标签: node.js selenium webdriver-io

我试图编写一个非常简单的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 - 两者都没有帮助。

1 个答案:

答案 0 :(得分:0)

好的,在预感中,我尝试了一些东西。我打电话给client.execute(),而不是打电话给this.execute()。出于某种原因,这是有效的。我唯一的猜测是,waitUntil在一个独立于client的特殊上下文中执行自己,并且该上下文是它在某种程度上所期望的承诺。