node.js - Node.js 上的 Selenium webdriver - 如何访问全局窗口变量
问题描述
Node.js 应用程序、selenium webdriver、Chrome 无头。我的应用程序需要抓取网站列表,其中一个已将信息附加到全局窗口变量。
我尝试了以下方法,但它会引发错误:
// .... more code to load page up to this point
driver.execute(function () {
console.log(window.info);
return window;
}).then(function (result) {
console.log( "\n\ninfo from window object: " + util.inspect(result) );
}).catch( (err) => {
console.error(" Caught Error for window: " + err);
});
// throws ERROR: Caught Error for window: TypeError: command.setParameter is not a function
有没有办法从 Selenium 访问全局窗口变量(最好是无头的,但如果我应该使用 head 那么我可以尝试)?
解决方案
没关系,我找到了答案。
该方法是 executeScript() 而不是 execute()。
driver.executeScript("return window.info")
.then(function (result) {
console.log( "\n\ninfo from window object: " + util.inspect(result) );
}).catch( (err) => {
console.error(" Caught Error for window: " + err);
});
推荐阅读
- java - SpringBoot WebService 客户端:MultipartFile 和 String 参数
- javascript - 过滤唯一字段并从对象数组中推入数组
- python - async 和 asyncio 错误 -- TypeError: 'coroutine' object is not callable
- mfc - 从 vb 到 mfc 的 dao 属性
- java - 使用键检索时,Hashmap 未按预期返回值
- asp.net - 实体数据模型静默退出
- c++ - 是否可以使用 IDE 在 C++ 源代码中取消宏 C?
- mysql - MySQL优化——索引的使用
- java - 使用 Spring JPA 规范搜索连接表
- python - 具有不同数据范围的多个重叠子图