Использую Ruby, Selenium-WebDriver.
При запуске Chrome или PhantomJS проблем нет.
Каждый новый запуск тест открывает пустой браузер, без настроек, плагинов, старых сессий и т. д.
При запуске Safari открывается рабочий Safari, в котором все прошлые сессии сохраняются.
Т. е., если прошлый тест авторизовался на сайте и завершил работу браузера, то повторный запуск теста упадёт, т. к. пользователь уже авторизован.
Какой магией можно сказать Селениуму, чтобы он запускал «чистый» Safari?
Для safari есть options cleanSession, выставить в true и запихать в капабилити
Раньше оно не работало, может сейчас что-то поменялось
Я это обходил дело убиением процесса safari и чисткой кэша вручную(перед тестом запускался скрипт по зачистке кеша)
Примерно как-то так - https://discussions.apple.com/thread/6460803?start=0&
Тут проблема в том, что та копия Safari, которую запускает WebDriver — это моя личная, копия, как бы так правильно выразиться.
Мне не надо в моём Safari убивать кеш, куки и т. д.
В случае с Chrome, у меня есть рабочий Chrome с плагинами, расширениями, сессиями и т. д.
При этом WebDriver запускает именно копию Chrome, чистую, без настроек, плагинов и прочего.
Была и есть бага в старых safari драйверах, что не создавалась “чистая” сессия браузера, не работали стандартные методы по удалению кукисов. И все советы/решения были основаны на том или ином способе чистки “каши” и “печенек”
Остается ждать от Apple их safari driver и уповать, что там будет все работать как надо