微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Nightwatch.js:窗口未定义

我正在尝试使用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 举报,一经查实,本站将立刻删除。

相关推荐