Сервер Selenium не запускается для пользовательского профиля Firefox
Я пытаюсь запустить сервер selenium, передавая собственный профиль Firefox конструктору DefaultSelenium. Он открывает браузер с указанным URL.
DefaultSelenium selenium = new DefaultSelenium("localhost", 4444, "*custom \"C:/Program Files/Mozilla Firefox/firefox.exe\"",ReadConFile.readcoFile("serverName"));
selenium.start();
журнал
16:39:19.246 INFO - Allocated session 4eb63d37a4ba4d2fb4e351f8f59e3ea6 for https://<myURL>, launching...
тогда он остается таким, а сервер не запускается.
Тем не менее, это работает нормально, если я не использую пользовательский профиль.
DefaultSelenium selenium = new DefaultSelenium("localhost", 4444, "*chrome",ReadConFile.readcoFile("serverName"));
selenium.start();
Мне нужен собственный профиль запуска, так как я сохранил некоторые сертификаты сайта, необходимые для https. Кроме того, я выполняю это из затмения.
Я думаю, что мой сервер не настроен для запуска пользовательского профиля. Пожалуйста, помогите мне с этим.
4 ответа
Команда запуска на самом деле не запускает ваш сервер селена как таковой, она соединяет ваш объект селена с уже запущенным сервером с выбранным вами браузером.
Чтобы фактически запустить сервер селена [Jetty Web], который отправляет / получает команды для тестируемого приложения через указанный вами браузер, используйте пакетный файл, а коммутатор rs79 имеет в виду. Содержимое вашего командного файла должно включать его строку:
java -jar selenium-server-standalone-2.0a5.jar -firefoxProfileTemplate C:\custom-firefox-profile
Теперь у вас есть настоящий сервер селена, работающий на вашем компьютере разработчика (localhost) с портом "4444" по умолчанию. Это будет означать, что любое тестирование браузера Firefox будет использовать этот профиль.
Теперь ваш конструктор DefaultSelenium, присваивание и другие вызовы могут выглядеть так:
DefaultSelenium selenium = new DefaultSelenium("localhost", 4444, "*firefox","http://www.server.com");
selenium.start()
selenium.open("myApp/")
Firefox начнет использовать пользовательский профиль, указанный в командном файле, который запускает сервер Selenium, с нужным базовым URL, а затем перейдет к нужному приложению [URL]. Если вы начинаете свой тест с " http://www.server.com/ ", а не с " http://www.server.com/myApp ", вы можете пропустить последнюю открытую строку.
Если вы хотите иметь
Fifefox
профиль по умолчанию в вашем тесте:
а) Скачать последнюю версиюselenium-server
: http://selenium-release.storage.googleapis.com/index.html
б) Скачать последнюю версиюFirefox
в) СоздатьFF
профиль (лучший в вашей пользовательской директории) - в моем случае с именем "atf" https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles
Каталог по умолчанию, в котором сохраняются профили:C:\Users\johndoe\AppData\Roaming\Mozilla\Firefox\Profiles
г) в моем случае я использую
FF 36
а такжеselenium-server-standalone-2.45.0.jar
Бежатьselenium server
:java -jar C:\driver\selenium-server-standalone-2.45.0.jar -Dwebdriver.firefox.profile=atf
Затем обратитесь к нему в своем коде:
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=DesiredCapabilities.FIREFOX)
Если вы хотите сослаться на определенный профиль в вашем коде (здесь я использую сгенерированную по умолчанию папку для профиля с именем "myProfile"):
profile_path = C:/Users/johndoe/AppData/Roaming/Mozilla/Firefox/Profiles/2zvl3dxx.myProfile" fp = webdriver.FirefoxProfile(profile_path) driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=DesiredCapabilities.FIREFOX, browser_profile=myProfile)
Вы можете добавить сертификаты в пользовательский профиль
а) Запустить браузер с пользовательским профилем
б) Добавить сертификат
c) Не забудьте поставить галочку в настройках Firefox / Дополнительно / СертификатыSelect one automatically
чтобы не запрашивать сертификат каждый раз, когда вы заходите на проверенную страницу
г) перезапустить браузер
д) Перейдите на страницу, что будет проверено и принятьUser Identification Request
е) Закройте Firefox и наслаждайтесь пользовательским профилем с сертификатами, доступными на сервере селена:)
Когда вы вызываете сервер Selenium RC, укажите путь, используя дополнительные -firefoxProfileTemplate
пункт. Например -
java -jar selenium-server-standalone-2.0a5.jar -firefoxProfileTemplate C:\custom-firefox-profile
Это позволит вам использовать все привязки, сохраненные в пользовательском профиле.