【问题标题】:WebdriverIO screenshot fails after waiting for execute condition等待执行条件后WebdriverIO截图失败
【发布时间】:2015-08-22 21:27:52
【问题描述】:

我正在尝试编写一个非常简单的 WebdriverIO 脚本,该脚本将访问一个 URL,等待 JS 中的某些条件为真(例如,设置了一个全局变量)并在它为真时截取屏幕截图。但是waitUntil 抛出了一个错误,上面写着“CommandError: Promise never resolve 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;”,但这表明执行显然会返回一个真实的值。

如果我删除对screenshot() 的调用,则不会出现错误。

我尝试为waitUntil() 设置一个较高的超时值,并尝试从.execute() 调用中返回实际的result.value -- 两者都没有帮助。

【问题讨论】:

    标签: node.js selenium webdriver-io


    【解决方案1】:

    好吧,我凭直觉尝试了一些东西。我没有打电话给client.execute(),而是打电话给this.execute()。出于某种原因,这行得通。我对原因的唯一猜测是 waitUntil 在与client 不同的特殊上下文中执行自身,并且该上下文是它期望以某种方式得到承诺的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多