Selenium NodeJS将cookie打印到控制台

Selenium NodeJS print cookies to console

本文关键字:控制台 打印 cookie NodeJS Selenium      更新时间:2023-09-27

我正在使用Node.JS的selenium webdriver npm模块,但是在将cookie写入控制台时遇到了问题。我使用了NPM页面上的示例代码(正在使用中)

var webdriver = require('selenium-webdriver'),
    By = webdriver.By,
    until = webdriver.until;
var driver = new webdriver.Builder()
    .forBrowser('firefox')
    .build();
driver.get('http://www.google.com/ncr');
driver.findElement(By.name('q')).sendKeys('webdriver');
driver.findElement(By.name('btnG')).click();
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
console.log(driver.manage().getCookies());
driver.quit();

现在,我希望console.log编写我在其他问题中看到的词典,但我得到了以下输出:

ManagedPromise {
  flow_: 
   ControlFlow {
     propagateUnhandledRejections_: true,
     activeQueue_: 
      TaskQueue {
        name_: 'TaskQueue::5',
        flow_: [Circular],
        tasks_: [Object],
        interrupts_: null,
        pending_: null,
        state_: 'new',
        unhandledRejections_: Set {} },
     taskQueues_: Set { [Object] },
     shutdownTask_: null,
     hold_: 
      Timeout {
        _called: false,
        _idleTimeout: 2147483647,
        _idlePrev: [Object],
        _idleNext: [Object],
        _idleStart: 231,
        _onTimeout: [Function: wrapper],
        _repeat: [Function] } },
  stack_: { [Task: WebDriver.manage().getCookies()] name: 'Task' },
  parent_: null,
  callbacks_: null,
  state_: 'pending',
  handled_: false,
  value_: undefined,
  queue_: null }

我的控制台上没有错误,但我也没有得到我期望的cookie。我使用的是node的最新版本v5.9.1和selenium网络驱动程序的最新版。由于某种原因,console.log代码在selenium的Firefox实例启动之前就被调用了。我该怎么解决这个问题?

您可以使用.then()。请参阅我们何时应该使用.then与Protractor Promise?了解更多信息。

driver.manage().getCookies().then(function (cookies) {
    console.log(cookies);
});