如何将对象parameter passing给browser.execute方法?

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

 describe('reference', () => { it('test browser', () => { browser.execute(function(){ console.log('BROWSER:', browser); }); }); }); 

但是有一个错误:

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

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

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

你可以传入browser对象,但是因为它不能访问WebdriverIO的所有其他内容,所以我猜测它不会像你希望的那样工作。 无论如何,这里是代码:

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

你有访问正常的DOM虽然。 所以如果你想find一个元素,你可以这样做:

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

如果你正在寻找更多的细节,我在我的WebdriverIO课程 (列表中的#23)上有一个8分钟的video。