Профиль Firefox — это набор настроек, дополнений и других параметров персонализации, которые можно применить в браузере Firefox. Также его можно настроить в соответствии с требованиями Selenium.
Одним словом, профиль — это персональные настройки пользователя. Чтобы запустить надёжную автоматизацию в браузере Firefox, рекомендуется создать отдельный профиль.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Содержание
- Расположение папки профиля на диске
- Как настроить профиль Firefox для Selenium-тестов
- Сценарий автоматизации для Selenium
Расположение папки профиля на диске
Профиль Firefox — это как разные пользователи, использующие браузера. В профиле сохраняются такие сведения, как пароли, закладки и предпочтения пользователя. Эти данные можно редактировать, удалять или создавать с помощью менеджера программ.
Расположение профиля:
- Для Windows 7 > /AppData/MozillaFirefoxProfile_name.default
- Для Linux > /.mozilla/firefox/profile_name.default/
- Для Mac OS X > ~/Library/ApplicationSupport/Firefox/Profiles/profile_name.default/
Для успешного выполнения Selenium-тестов профиль Firefox должен:
- Легко загружаться
- При необходимости иметь настройки прокси-сервера
- Иметь другие пользовательские настройки в зависимости от потребностей автоматизации
Как настроить профиль Firefox для Selenium-тестов
Рассмотрим шаг за шагом, как создать профиль Firefox.
Шаг 1. Закройте браузер Firefox, если он открыт.
Шаг 2. Откройте Run (запустить) с помощью клавиши Windows + R и введите firefox.exe -p.
Обратите внимание: если окно не открывается, можно попробовать использовать полный путь:
- На 32-битной версии Windows: “C:Program FilesMozilla Firefox.exe” -p.
- На 64-битной версии Windows: “C:Program Files(x86)Mozilla Firefox.exe” -p.
Шаг 3. Выберите профиль пользователя.
Откроется диалоговое окно с именем Firefox.
Шаг 4. Создайте профиль.
В окне выберите опцию Create Profile (создать профиль), после чего откроется Мастер. Нажмите кнопку «Далее».
Шаг 5. Указать имя профиля.
Теперь профиль готов, вы можете выбрать его и открыть Firefox.
Примечание. При следующем запуске Firefox будет автоматически загружен последний выбранный профиль. Для смены профиля необходимо перезапустить менеджер профилей.
Сценарий автоматизации для Selenium
Для доступа к только что созданному профилю Firefox с помощью Selenium Webdriver необходимо использовать встроенный класс веб-драйверов profilesIni
и его метод getProfile
, как показано ниже.
Этот код предназначен для реализации профиля, который можно встроить в код Selenium:
ProfilesIni profile = new ProfilesIni();
Создание объекта для профиля Firefox:
FirefoxProfile myprofile = profile.getProfile("xyzProfile");
Инициализация драйвера Firefox:
WebDriver driver = new FirefoxDriver(myprofile)
Давайте рассмотрим реализацию этого кода на примерах.
Пример 1
// import the package import java.io.File; import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; import org.openqa.selenium.firefox.internal.ProfilesIni; public class FirefoxProfile { public static void main(String[] args) { ProfilesIni profile = new ProfilesIni(); FirefoxProfile myprofile = profile.getProfile("xyzProfile"); // Initialize Firefox driver WebDriver driver = new FirefoxDriver(myprofile); //Maximize browser window driver.manage().window().maximize(); //Go to URL which you want to navigate driver.get("http://www.google.com"); //Set timeout for 5 seconds so that the page may load properly within that time driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //close firefox browser driver.close(); } }
Ниже приведено построчное объяснение кода:
- Строки 2-7: сначала нужно импортировать пакет, необходимый для выполнения кода Selenium
- Строка 8: создание открытого класса
FirefoxProfile
- Строка 9: создание объекта (необходимо иметь базовые знания об объектно-ориентированном программировании)
- Строки 10-11: инициализация профиля Firefox объектом
myProfile
- Строка 13: создание объекта для Firefox
- Строка 15: максимизация окна
- Строка 17: использование
Driver.get
для перехода по указанному URL - Строка 19: установка тайм-аута, чтобы дождаться загрузки страницы перед переходом к следующей странице
- Строка 21: закрытие Firefox
Пример 2
import java.io.File; import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; import org.openqa.selenium.firefox.internal.ProfilesIni; public class FirefoxProfile2{ public static void main(String[] args) { // Create object for FirefoxProfile FirefoxProfilemyprofile=newFirefoxProfile (newFile("\c:users\AppData\MozillaFirefoxProfile_name.default ")); // Initialize Firefox driver WebDriver driver = new FirefoxDriver(myprofile); //Maximize browser window driver.manage().window().maximize(); //Go to URL driver.get("http://www.google.com"); //Set timeout driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //close firefox browser driver.close(); }
Ниже приведено построчное пояснение кода:
- Строки 1-6: импорт пакета, необходимого для выполнения кода Selenium
- Строка 8: создание открытого класса
FirefoxProfile2
- Строка 12: создание объекта
myProfile
, указывая точный путь. - Строка 14: создание объекта для Firefox
- Строка 16: максимизация окна
- Строка 18: использование
Driver.get
для перехода на заданный URL - Строка 20: установка тайм-аута, чтобы дождаться загрузки страницы перед переходом к следующей
- Строка 22: закрытие Firefox
Итог
- Автоматизация профиля Firefox необходима, так как именно он управляет настройками SSL-сертификатов.
- Профиль Firefox может быть настроен в соответствии с вашими требованиями автоматизации с помощью Selenium.
- Профиль Firefox должен легко загружаться и иметь некоторые пользовательские настройки прокси для успешного проведения теста.
- Для доступа к только что созданному профилю Firefox в Selenium необходимо использовать встроенный класс веб-драйвера
profilesIni
и его методgetProfile
.
Перевод статьи «Selenium Firefox Profile: Setup Guide».