четверг, 27 июня 2013 г.

Selenium: Запуск браузера Firefox с настроенным профилем

      При запуске браузера Firefox вебдрайвер каждый раз создает новый профиль с настройками по умолчанию. Но если для выполнения теста нужно подключить какие-нибудь плагины или, например, настроить параметры proxy? Существует как минимум две возможности это сделать:
  •  все необходимы настройки свойств браузера (preferences) можно сделать в коде тестов;
  •  можно запустить Firefox с заранее настроенным профилем.

      Настройка свойств браузера в коде теста

      Список настраиваемых свойств и их названия можно узнать, набрав в адресной строке браузера специальный адрес about:config, а также в базе знаний Mozilla.

      Установка свойства браузера выполняется с помощью метода setPreference для профайла:
      profile.setPreference(свойство, значение_свойства);

      В коде теста это будет выглядеть так:
      import org.openqa.selenium.*
      import org.openqa.selenium.firefox.* 

      profile = new FirefoxProfile();
      profile.setPreference("capability.policy.default.Window.frameElement", "allAccess");
      driver = new FirefoxDriver(profile);

      Запуск Firefox с заранее настроенным профилем

      Не все настройки браузера можно изменить через интерфейс Selenium. Если все же необходимо запустить Firefox с модифицированными настройками или нужными сертификатами безопасности, то можно заранее подготовить профиль с необходимыми настройки и указывать его в тесте при запуске браузера.

      Подготовка профиля Firefox

  • Закрыть все запущенные приложения Firefox
  • Запустить командную строку Run(Выполнить) и выполнить: firefox.exe –p
  • Создать новый профайл, назвать его Webdriver
  • Запустить браузер пользователем Webdriver и настроить необходимые параметры браузера

      Код для запуска браузера с выбранным профилем

      import org.openqa.selenium.firefox.FirefoxDriver;
      import org.openqa.selenium.firefox.FirefoxProfile;
      import org.openqa.selenium.firefox.internal.ProfilesIni;
       …
      FirefoxProfile profile = new ProfilesIni().getProfile("Webdriver");
      driver = new FirefoxDriver(profile);

3 комментария:

  1. можно ли изменить свойство профиля по ходу выполнения скрипта (после инициализации браузера) ?
    например смена прокси

    ОтветитьУдалить
    Ответы
    1. Мне неизвестны способы изменения профиля после старта браузера. Нужно запускать новый браузер с новыми настройками.

      Удалить
  2. А куда это все писать?
    В первом пункте, после about:config как добавлять свойства, что нажимать?
    Во втором пункте, после создания и настройки профиля, куда писать код для запуска браузера? Это код для командной строки или его необходимо где-то в другом месте прописывать?.. Не очень понятно.

    ОтветитьУдалить