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

Node.js 如何将对象参数传递给browser.execute方法?,node.js,browser,webdriver-io,Node.js,Browser,Webdriver Io,我正在尝试使用WebdriverIO的execute方法传递如下浏览器对象: describe('reference', () => { it('test browser', () => { browser.execute(function(){ console.log('BROWSER:', browser); }); }); }); 但有一个错误: 失败:未知错误:

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

describe('reference', () => {

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

        browser.execute(function(){
            console.log('BROWSER:', browser);
        });             
    });
});
但有一个错误:

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


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

执行中的任何代码都在浏览器内部运行,这意味着
浏览器
对象不可用

您可以将
浏览器
对象传入,但由于它无法访问WebDrivero的所有其余部分,我猜它不会像您希望的那样工作。不管怎样,下面是代码:

browser.execute(function(wdioBrowser){
    console.log('BROWSER:', wdioBrowser);
}, browser); 
不过,您确实可以访问普通的DOM。因此,如果要查找元素,可以执行以下操作:

browser.execute(function(){
    console.log('Element:', document.querySelector('.my-selector'));
}); 
如果您想了解更多详细信息,我有一个8分钟的视频(列表中有23个)