如何将对象参数传递给browser.execute方法?

时间:2017-09-18 20:40:28

标签: node.js browser webdriver-io

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

describe('reference', () => {

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

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

但是有一个错误:

  

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

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

1 个答案:

答案 0 :(得分: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分钟的视频。