Добавление файлов cookie с помощью Selenium Webdriver

У меня есть следующая последовательность кода Selenium, написанная с Node.js:

   it('tests cookies', t => {
      driver.manage().getCookies().then(function (cookies) {
        console.log('all cookies => ', cookies);
      });
      driver.manage().addCookie({name:'foo', value: 'bar'});
      driver.manage().getCookies().then(function (cookies) {
        console.log('all cookies => ', cookies);
      });
      driver.manage().deleteCookie('foo');
      return driver.manage().getCookies().then(function (cookies) {
        console.log('all cookies => ', cookies);
      });
    });

и я получаю этот вывод:

all cookies =>  []
all cookies =>  []
all cookies =>  []

Кто-нибудь знает, почему функциональность addCookie не будет работать? Я не уверен, что понимаю, почему это не приведет к появлению некоторых файлов cookie в банке для файлов cookie.

1 ответ

Решение

Проблема в том, что домен cookie не определен. Вам нужно перейти на какой-то URL, прежде чем вы сможете работать с куки. Попробуйте добавить driver.get('<some_url>') до получения всех файлов cookie и после установки нового файла cookie.

it('tests cookies', t => {
      driver.get('127.0.0.1'); // <-- This will set the domain
      driver.manage().getCookies().then(function (cookies) {
        console.log('all cookies => ', cookies);
      });
      driver.manage().addCookie({name:'foo', value: 'bar'});
      driver.get('127.0.0.1'); // <-- Navigate again after setting a new cookie
      driver.manage().getCookies().then(function (cookies) {
        console.log('all cookies => ', cookies);
      });
      driver.manage().deleteCookie('foo');
      return driver.manage().getCookies().then(function (cookies) {
        console.log('all cookies => ', cookies);
      });
    });

Смотрите также: Selenium JS добавьте cookie в запрос

Другие вопросы по тегам