Добавление файлов 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 в запрос