webdriverio browser.execute returns 空
webdriverio browser.execute returns null
我有一个 meteor 应用程序,想通过 webdriver.io.
的无头浏览器从客户端检索单元测试中的一些数据
我要的数据来自这个函数:
Session.get()
-> http://meteortips.com/first-meteor-tutorial/sessions/
我用的headless浏览器来自下面URL:
我的测试是这样的:
describe('[Check Boards]', () => {
it('should exist', () => {
const board = browser.execute('Session.get(\'currentBoard\')');
...
}
}
当我在真正的浏览器控制台中 运行 此命令 Session.get('currentBoard')
时,我按预期获得了板。
但是当我在 mocha 测试中从上面描述的代码中 运行 它时,我得到了这个结果:
{
"state": "success",
"sessionId": "12345",
"hCode": 12345,
"value": null,
"class": "org.openqa.selenium.remote.Response",
"_status": 0
}
值为空,但应该有板子。
browser.execute
需要浏览器中 运行 的函数。您正在传递一个字符串,所以它可能不知道该怎么做。这是更新后的代码片段,应该可以工作:
describe('[Check Boards]', () => {
it('should exist', () => {
const board = browser.execute(function () {
return Session.get('currentBoard');
});
...
}
}
如果您正在寻找更多详细信息,我在 my WebdriverIO course(列表中的第 23 位)中有一个关于 browser.execute
的 8 分钟视频。
我有一个 meteor 应用程序,想通过 webdriver.io.
的无头浏览器从客户端检索单元测试中的一些数据我要的数据来自这个函数:
Session.get()
-> http://meteortips.com/first-meteor-tutorial/sessions/
我用的headless浏览器来自下面URL:
我的测试是这样的:
describe('[Check Boards]', () => {
it('should exist', () => {
const board = browser.execute('Session.get(\'currentBoard\')');
...
}
}
当我在真正的浏览器控制台中 运行 此命令 Session.get('currentBoard')
时,我按预期获得了板。
但是当我在 mocha 测试中从上面描述的代码中 运行 它时,我得到了这个结果:
{
"state": "success",
"sessionId": "12345",
"hCode": 12345,
"value": null,
"class": "org.openqa.selenium.remote.Response",
"_status": 0
}
值为空,但应该有板子。
browser.execute
需要浏览器中 运行 的函数。您正在传递一个字符串,所以它可能不知道该怎么做。这是更新后的代码片段,应该可以工作:
describe('[Check Boards]', () => {
it('should exist', () => {
const board = browser.execute(function () {
return Session.get('currentBoard');
});
...
}
}
如果您正在寻找更多详细信息,我在 my WebdriverIO course(列表中的第 23 位)中有一个关于 browser.execute
的 8 分钟视频。