我正在尝试使用 Nightwatch 来测试 React 应用程序。我正在使用 React-Router。
使用 Nightwatch 运行我的测试时 window
未定义。
React 使用以下代码段来测试 DOM 是否可用:
var canUseDOM = !!(
typeof window !== 'undefined' &&
window.document &&
window.document.createElement
);
来自 React.js 源代码:ExecutionEnvironment.js#L16
所以我的测试失败了,因为运行 Nightwatch 时
window
未定义。window
不应该与 selenium webdriver 一起出现吗?如何使
window
可用? 最佳答案
从 Nightwatch.js(和 selenium-webdriver,更具体地说)你不能直接访问客户端的 DOM。
您必须使用 execute() 函数来注入(inject)您的脚本:
this.demoTest = function (browser) {
browser.execute(function(data) {
var canUseDOM = !!(
typeof window !== 'undefined' &&
window.document &&
window.document.createElement
);
alert('canUseDOM ?' + canUseDOM);
return true;
}, [], null);
};
API 中的更多信息:http://nightwatchjs.org/api#execute
关于javascript - Nightwatch.js:窗口未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29715293/