Selenium NodeJS将cookie打印到控制台

时间:2016-03-29 18:38:28

标签: javascript node.js selenium cookies

我正在为Node.JS使用selenium-webdriver npm模块,但是我无法将cookie写入控制台。我使用了NPM page(使用不足)

中的示例代码
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-webdriver。出于某种原因,在 selenium的Firefox实例启动之前,console.log代码被称为。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用.then()。有关详细信息,请参阅When should we use .then with Protractor Promise?

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