Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Запуск Safari без настроек, cookies и старых сессий

safari
ruby
selenium
webdriver
Теги: #<Tag:0x00007f7b631e5088> #<Tag:0x00007f7b631e4f48> #<Tag:0x00007f7b631e4e08> #<Tag:0x00007f7b631e4cc8>

(Сергей Блохин) #1

Использую Ruby, Selenium-WebDriver.
При запуске Chrome или PhantomJS проблем нет.
Каждый новый запуск тест открывает пустой браузер, без настроек, плагинов, старых сессий и т. д.
При запуске Safari открывается рабочий Safari, в котором все прошлые сессии сохраняются.
Т. е., если прошлый тест авторизовался на сайте и завершил работу браузера, то повторный запуск теста упадёт, т. к. пользователь уже авторизован.
Какой магией можно сказать Селениуму, чтобы он запускал «чистый» Safari?

Обычный запуск браузеров.

driver = Selenium::WebDriver.for :chrome
driver = Selenium::WebDriver.for :phantomjs

(Константин) #2

Для safari есть options cleanSession, выставить в true и запихать в капабилити
Раньше оно не работало, может сейчас что-то поменялось
Я это обходил дело убиением процесса safari и чисткой кэша вручную(перед тестом запускался скрипт по зачистке кеша)
Примерно как-то так - https://discussions.apple.com/thread/6460803?start=0&


(Сергей Блохин) #3

Тут проблема в том, что та копия Safari, которую запускает WebDriver — это моя личная, копия, как бы так правильно выразиться.
Мне не надо в моём Safari убивать кеш, куки и т. д.
В случае с Chrome, у меня есть рабочий Chrome с плагинами, расширениями, сессиями и т. д.
При этом WebDriver запускает именно копию Chrome, чистую, без настроек, плагинов и прочего.


(Константин) #4

Была и есть бага в старых safari драйверах, что не создавалась “чистая” сессия браузера, не работали стандартные методы по удалению кукисов. И все советы/решения были основаны на том или ином способе чистки “каши” и “печенек”
Остается ждать от Apple их safari driver и уповать, что там будет все работать как надо


(Сергей Блохин) #5

Константин, больше спасибо за ответ.
Теперь всё стало на свои места.