我正在尝试使用带有javascript的webdriver访问全局变量。
我的代码:
this.Then(/^I read global var$/, function (selectedElement) {
readGlobalVar(window.location.href);
});
function readGlobalVar(varName){
return varName;
}
错误: ReferenceError:窗口未定义
答案 0 :(得分:1)
代码在节点上而不是在浏览器中运行,所以当您将window.location.href
传递到readGlobalVar
函数时,它会失败,因为window
未定义。
如果你需要的是等到网址与某个值匹配,你应该考虑https://msdn.microsoft.com/library/y7e4769a(v=vs.110).aspx
答案 1 :(得分:0)
假设您正在使用this module ...
Node的JS执行环境和您使用Selenium控制的浏览器的JS执行环境不同。它们之间不共享变量。您可以通过webdriver传递消息来进行通信。
为了从当前加载的页面中读取变量,您需要使用execute
method将一些JS传递到页面中。
browser.execute(function () {
return window.location.href;
}).then(function (result) {
console.log(result.value);
});