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

Запуск в текущей сессии.( В открытом браузере) Java, webdriver firefox.


(Lessname) #1

Нужно запустить тест в открытом окне браузера, т.е. без потери авторизации на сайте. Пробывал явно указать дефолтный профиль firefox - не пашет. Помимо подмены cookie есть ли способ это реализовать?. [Java, webdriver firefox]


(Дмитрий Жарий) #2

Привет @lessname,

Опишите пожалуйста сценарий (пример работы) которого вы хотите добиться по шагам. Описание вопроса выглядит очень размыто.
Вы хотите присоединиться WebDriver’ом к уже открытому браузеру?


(Lessname) #3

Да именно так, нужно чтобы авторизация на сайте произведенная в этом браузере вручную сохранилась при проведении теста. Знаю что можно сохранять куки и при последующем запуске их записывать обратно, но возможно есть более простой способ?


(Дмитрий Жарий) #4

В Selenium WebDriver такой фичи, как присоединение к уже существующему браузеру – нет, и реализация не планируется. Этот вопрос обсуждался когда-то толи в баг-трекере толи в рассылке selenium-developers.

Единственный «правильный» способ сделать так, чтобы WebDriver мог достучатся до браузера, это запустить браузер при помощи WebDriver.
Этот принцип заложен в моем Page Recorder, который взаимодействует с браузером через WebDriver, при этом позволяет производить любые ручные операции, например, логин в веб-приложение.

А это история о том, как докладчик написал вспомогательное приложение, которое позволяет тестировать приложение в полуавтоматическом режиме. Принцип тот же.

В вашем случае, я бы написал десктопное приложение, которое бы позволяло открывать браузер и запускать тесты по нажатию на кнопку.

Такой инструмент, конечно, не один день писать… поэтому это так, просто идея для раздумий. :smiley:


(Александр Шиповалов) #5

А почему не запустить, браузер. Ручками не пройти авторизацию - и не продолжить тест? Сильно сомневаюсь, что вы тестируете запуск стороннего бразуера.


(Руслан) #6

эм…сори за глупый вопрос, а почему просто авторизацию не добавить веб-драйвером?


(Sergey Korol) #7

Видимо автор просто хочет сэкономить время на запуске браузера.

Уверяю, это вам придаст лишь дополнительных проблем. Куки на современных сервисах вы не сохраните. Точнее, толку от их сохранения будет мало. Это несекьюрно, посему, разработчики обычно внедряют дополнительные системы защиты.

Плюс ко всему, если вы производите все действия в одном инстансе браузера, вам придется еще и позаботиться о различных прекондишенах / посткондишенах, чтобы привести / вернуть систему в нужное для тестирования состояние. Как итог, на этих дополнительных степах вы потеряете гораздо больше времени, нежели на открытии браузера.

Еще одним интересным моментом является кэш. Который вам тоже придется чистить постоянно.


(Дмитрий Жарий) #8

Вот тут то нам и нужно выяснить истинные мотивы @lessname :wink:


(Taras) #9

http client - ом сразу авторизацию забацать после старта бразуера и потом уже селениумом кликать


(Александр Шиповалов) #10

Может быть автору, надо сделать что то руками…пока браузер стоит - например вставить какой то USB-токен.