Сервер 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 ", вы можете пропустить последнюю открытую строку.

  1. Если вы хотите иметь 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)
    
  2. Если вы хотите сослаться на определенный профиль в вашем коде (здесь я использую сгенерированную по умолчанию папку для профиля с именем "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)
    
  3. Вы можете добавить сертификаты в пользовательский профиль
    а) Запустить браузер с пользовательским профилем
    б) Добавить сертификат
    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

Это позволит вам использовать все привязки, сохраненные в пользовательском профиле.

Вы также можете запустить сервер Selenium в Java, см. Здесь.

Другие вопросы по тегам