【问题标题】:How to pass object argument to browser.execute method?如何将对象参数传递给 browser.execute 方法?
【发布时间】:2017-09-18 20:40:27
【问题描述】:

我正在尝试使用 WebdriverIO 的 execute 方法来传递这样的浏览器对象:

describe('reference', () => {

    it('test browser', () => {      

        browser.execute(function(){
            console.log('BROWSER:', browser);
        });             
    });
});

但是有一个错误:

失败:未知错误:浏览器未定义

如何将浏览器对象传递给自定义函数?

【问题讨论】:

    标签: node.js browser webdriver-io


    【解决方案1】:

    execute 内部的任何代码都在浏览器本身内部运行,这意味着 browser 对象不可用。

    您可以传入browser 对象,但由于它无法访问WebdriverIO 的所有其余部分,我猜它不会像您希望的那样工作。无论如何,这是代码:

    browser.execute(function(wdioBrowser){
        console.log('BROWSER:', wdioBrowser);
    }, browser); 
    

    您确实可以访问普通的 DOM。所以如果你想找到一个元素,你可以这样做:

    browser.execute(function(){
        console.log('Element:', document.querySelector('.my-selector'));
    }); 
    

    如果您正在寻找更多详细信息,我在my WebdriverIO course(列表中的第 23 位)中有一个 8 分钟的视频。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 2011-07-18
      • 2018-09-09
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多