我正在为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代码被称为。我该如何解决这个问题?
答案 0 :(得分:1)
您可以使用.then()。有关详细信息,请参阅When should we use .then with Protractor Promise?。
driver.manage().getCookies().then(function (cookies) {
console.log(cookies);
});