Seb*_*ian 4 javascript selenium reactjs nightwatch.js
我正在尝试使用Nightwatch来测试React应用程序.我正在使用React-Router.
使用Nightwatch运行我的测试时window未定义.
React使用以下代码片段来测试DOM是否可用:
var canUseDOM = !!(
typeof window !== 'undefined' &&
window.document &&
window.document.createElement
);
Run Code Online (Sandbox Code Playgroud)
来自React.js源:ExecutionEnvironment.js#L16
React-Router期望
canUseDOM为true,否则会引发错误.
所以我的测试失败了因为window在运行Nightwatch时未定义.
不window应该与硒webdriver一起出现?我该如何window提供?
从Nighwatch.js(和更具体地说是selenium-webdriver),您无法直接访问客户端的DOM.您必须使用execute()函数注入脚本:
this.demoTest = function (browser) {
browser.execute(function(data) {
var canUseDOM = !!(
typeof window !== 'undefined' &&
window.document &&
window.document.createElement
);
alert('canUseDOM ?' + canUseDOM);
return true;
}, [], null);
};
Run Code Online (Sandbox Code Playgroud)
API中的更多信息:http://nightwatchjs.org/api#execute
| 归档时间: |
|
| 查看次数: |
4759 次 |
| 最近记录: |