2013-12-12 3 views
1

Я не могу очистить файлы cookie с помощью watir-webdriver и browser.cookies.clear Есть ли другие альтернативы?Невозможно очистить файлы cookie с помощью браузера.cookies.clear

+0

У меня были проблемы с удалением куки Капибара, а также и следующий пост помог мне решить мои проблемы: [Как очистить куки в тестах Капибара (как Selenium and Rack :: Test)] (http://makandracards.com/makandra/16117-how-to-clear-cookies-in-capybara-tests-both-selenium-and-rack-test) – katranci

+0

После изучения проблемы Я понял, что файлы cookie очищаются с использованием метода cookie.clear, но проблема заключается в том, что я регистрируюсь на внешнем сайте (facebook) через свой тестовый сайт. поэтому метод cookie.clear будет работать только для моего домена, и мои тесты терпят неудачу, потому что я не могу очистить файлы cookie на внешней веб-странице. Я попытался выйти на внешний сайт и очистить файлы cookie после каждого сценария и получить работу, но это действительно грязный трюк и сделает мои тесты хрупкими. Любые лучшие идеи? – Vamsi

+0

Эй Это может быть проблема с браузером. Попробуйте обновить браузер и драгоценные камни – unknownbits

ответ

3

Это насколько я знаю ограничение на основе браузера из-за проблем безопасности и конфиденциальности.

Webdriver взаимодействует с браузером с помощью javascript, а javascript не разрешает очищать все файлы cookie (подумайте, насколько неприятно, что может быть на злонамеренном сайте). В неинверсивном env большинство JS, которые выполняются, поступают с сервера сайта, к которому вы обращаетесь. Таким образом, большинство из них разрешено делать, это очистить файлы cookie для «текущего домена», например. куки, принадлежащие текущему URL-адресу. Поэтому, если веб-страница хочет очистить все свои файлы cookie, это нормально, но не разрешено очищать файлы cookie, принадлежащие другим доменам.

Так что, если вы хотите, чтобы все ваши тесты, чтобы начать со свежими печеньем, то вам нужно что-то в «Перед» раздел в env.rb, что идет в корень сайта в вопросе, а затем очищает печенье

Кстати, это ограничение относится к настройке файлов cookie, если вы хотите создавать файлы cookie для определенного сайта, вам нужно перейти на этот сайт, прежде чем пытаться их создать, или ничего не создается.

0

Это не ответ, а только FYI.

Предположим, что хром является выбранным браузером при запуске огурца, с вывода ps -ef | grep chrome мы сможем найти индивидуальный каталог данных пользователя, который выглядит как показано ниже.

--user-data-dir=/tmp/.org.chromium.Chromium.G2DgPo 

И внутри этого каталога, мы сможем найти файл Cookies хранящийся в папке Default.

Не уверен, что непосредственно удаленный файл базы данных может удовлетворить потребности. Причина в обычном сеансе браузера, такие данные во время выполнения хранятся в

~/.config/google-chrome/Default/Cookies 
Смежные вопросы