Сервер Selenium не запускается для пользовательского профиля Firefox - PullRequest
7 голосов
/ 30 марта 2011

Я пытаюсь запустить сервер 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.Кроме того, я выполняю это из eclipse.

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

Ответы [ 4 ]

6 голосов
/ 09 июня 2011

Команда start на самом деле не запускает ваш сервер селена как таковой, она соединяет ваш объект селена с уже работающим сервером с выбранным вами браузером .

Для фактического запуска сервера селена [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 голос
/ 11 марта 2015
  1. Если вы хотите иметь профиль Fifefox по умолчанию в своем тесте:
    a) Загрузить последнюю версию selenium-server: http://selenium -release.storage.googleapis.com / index.html
    b) Загрузить последнюю версию Firefox
    c) Создать профиль FF (лучший в вашем пользовательском каталоге) - в моем случае с именем "atf" https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles
    Каталог по умолчанию, в котором сохраняются профили:

     C:\Users\johndoe\AppData\Roaming\Mozilla\Firefox\Profiles
    

    d) В моем случае я использую 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. Вы можете добавить сертификаты в пользовательский профиль
    a) Запустить браузер с пользовательским профилем
    б) Добавить сертификат
    c) Не забудьте поставить галочку в настройках Firefox / Дополнительно / Сертификаты
    Select one automatically
    чтобы не запрашивать сертификат каждый раз, когда вы заходите на проверенную страницу
    d) Перезапустить браузер
    e) Перейдите на страницу, что будет проверено, и примите User Identification Request
    f) Закройте Firefox и наслаждайтесь пользовательским профилем с сертификатами, доступными на сервере selenium:)

1 голос
/ 30 марта 2011

Когда вы вызываете сервер Selenium RC, укажите путь с помощью дополнительного предложения -firefoxProfileTemplate. Например -

java -jar selenium-server-standalone-2.0a5.jar -firefoxProfileTemplate C:\custom-firefox-profile

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

0 голосов
/ 16 ноября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...