gpt4 book ai didi

javascript - Nightwatch.js:窗口未定义

转载 作者:搜寻专家 更新时间:2023-11-01 05:22:25 24 4
gpt4 key购买 nike

我正在尝试使用 Nightwatch 来测试 React 应用程序。我正在使用 React-Router。

当使用 Nightwatch 运行我的测试时 window 是未定义的。

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.

所以我的测试失败了,因为 window 在运行 Nightwatch 时未定义。

window 不应该与 selenium webdriver 一起出现吗?如何使 window 可用?

最佳答案

从 Nighwatch.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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com