我正在尝试使用Nightwatch来测试React应用程序.我正在使用React-Router.
使用Nightwatch窗口运行测试时未定义.
React使用以下代码片段来测试DOM是否可用:
var canUseDOM = !!(
typeof window !== 'undefined' &&
window.document &&
window.document.createElement
);
来自React.js来源:ExecutionEnvironment.js#L16
React-Router expects
canUseDOM
to be true, otherwise it throws an
error.
所以我的测试失败了,因为在运行Nightwatch时窗口未定义.
selenium webdriver不应该出现窗口吗?
如何使窗口可用?
解决方法:
从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);
};
API中的更多信息:http://nightwatchjs.org/api#execute
原文地址:https://codeday.me/bug/20190612/1222960.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。