如何将对象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。