【问题标题】:How to Get Window Variable Using WebdriverIO如何使用 WebdriverIO 获取窗口变量
【发布时间】:2017-05-20 19:06:14
【问题描述】:

我正在尝试使用 PhantomJS/Chrome 运行 webdriverio 来加载页面,然后抓取窗口对象以与其他脚本一起使用。由于某种原因,我无法获取窗口对象。每次我得到,我最终都会看到这样的输出:

Title is: XXXXX
{ state: 'pending' }

使用以下脚本:

var webdriverio = require('webdriverio');
var options = {
    desiredCapabilities: {
        browserName: 'chrome',
        logLevel: 'verbose'
    }
};

var client = webdriverio.remote(options);

client
     .init()
     .url('https://xxxx.com')
     .waitUntil(function () {
         return client.execute(function () {
             return Date.now() - window.performance.timing.loadEventEnd > 40000;
        }).then(function (result) {
             console.log(window);
             return window;
         });
     })
     .end();

有谁知道如何修复我的代码,以便在页面完全加载后将窗口对象返回到我的 NodeJS 控制台应用程序?

谢谢!

【问题讨论】:

    标签: node.js selenium-webdriver webdriver-io


    【解决方案1】:

    Window 是浏览器 DOM 中的一个对象,因此它只能在“执行”函数内部使用。如果你想访问它,你可以从你的 'execute' 函数中返回它:

    return client.execute(function () {
         return window;
    }).then(function (result) {
         console.log(result);
    });
    

    【讨论】:

      【解决方案2】:

      这项工作也是如此:

      browser.execute('return window');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-22
        • 1970-01-01
        • 2011-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-02
        • 2021-03-03
        相关资源
        最近更新 更多