首页 > 解决方案 > 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 那么我可以尝试)?

标签: node.jsselenium-webdriverselenium-chromedriver

解决方案


没关系,我找到了答案。

该方法是 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);
      });

推荐阅读