gpt4 book ai didi

selenium - 从 Protractor 访问窗口对象/浏览器范围

转载 作者:行者123 更新时间:2023-12-03 11:55:26 27 4
gpt4 key购买 nike

我正在使用 Protractor 进行测试,但是似乎无法访问JS“窗口”对象。我什至尝试在我的html文件中添加一个包含如下内容的标签

var a = window.location;

然后尝试Expect(a),但我无法使其正常工作,我总是会得到 undefined reference ...

我应该如何处理访问浏览器范围内的变量?

最佳答案

假设您使用的是最新版本的 Protractor ,假设> = 1.1.0,希望> = 1.3.1

尝试直接从Protractor访问浏览器端JS代码是行不通的,因为Protractor在NodeJS中运行,并且每个浏览器端的代码都是通过Selenium JsonWireProtocol执行的。

没有进一步的细节,一个工作示例:

browser.get('https://angularjs.org/');

一线 promise 到今天为止将解析为 '1.3.0-rc.3'
browser.executeScript('return window.angular.version.full;');

鉴于 Protractor 的期望为您解决了 promise ,您可以在期望语句中直接使用它:
expect(browser.executeScript('return window.angular.version.full;')).
toEqual('1.3.0-rc.3');

较长的示例传递函数而不是字符串,而没有 expect来解决对您的 promise 。即为了获得更多控制权并为结果做一些花哨的事情。
browser.driver.executeScript(function() {
return window.angular.version.full;
}).then(function(result) {
console.log('NodeJS-side console log result: ' + result);
//=> NodeJS-side console log result: 1.3.0-rc.3
});

关于selenium - 从 Protractor 访问窗口对象/浏览器范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26102132/

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