Какой профиль Selenium WebDriver использует по умолчанию?


Где Selenium WebDriver (он же Selenium 2) получает анонимный профиль, который он использует при открытии FirefoxDriver? Если он использовал значение по умолчанию для Firefox, %appdata% / roaming/mozilla / firefox / profiles, то если бы я отключил плагин firefox, он также должен быть отключен для Selenium WebDriver, так почему бы и нет?

4 17

4 ответа:

Я отвечу на него, поддержав комментарий от @twall: при запуске firefox в Selenium 2 WebDriver он запускает новый, анонимный профиль.

Однако, если вы хотите изменить его, вы можете создать новый профиль Firefox и назвать его как-нибудь, вы знаете, что это такое - например SELENIUM

Затем в коде сделайте следующее:

 ProfilesIni profile = new ProfilesIni();
 FirefoxProfile ffprofile = profile.getProfile("SELENIUM");
 WebDriver driver = new FirefoxDriver(ffprofile);

Таким образом, Firefox всегда будет запускать этот профиль. В профиле вы делаете все необходимые настройки

Вы можете назначить каждому узлу Selenium grid 2 определенный профиль firefox:

Java-jar selenium-server-standalone-2.37.0.кувшин - Двебдрайвер.браузер firefox.профиль =мой профиль-роль узла-концентратора http://example-server.org:4444/grid/register

Обратите внимание, что значение webdriver.браузер firefox.профиль должен быть firefox имя профиля , а не расположение или имя папки

При запуске webdriver на тестовом сервере без параметров для создания профилей на машине вы можете создать свой профиль программно:

private FirefoxProfile GetFirefoxProfile()
{
    FirefoxProfile firefoxProfile = new FirefoxProfile();
    firefoxProfile.SetPreference("network.automatic-ntlm-auth.trusted-uris", "http://localhost");
    return firefoxProfile;
}

Извлечение профиля не полезно, Так как это внутреннее создание другой копии извлеченного именованного профиля. Доступ к исходному профилю необходим, если например: данные тестового покрытия должны быть записаны в хранилище данных через несколько вызовов.

Здесь возможно решение путем переопределения класса профилей Селена

Начните с создания пользовательского профиля с помощью firefox-p, скажите "CustomSeleniumProfile"

ProfilesIni profileini = new ProfilesIni() {
    @Override
    public FirefoxProfile getProfile(String profileName) {
            File appData = locateAppDataDirectory(Platform.getCurrent());
            Map<String, File> profiles = readProfiles(appData);
            File profileDir = profiles.get(profileName);
            if (profileDir == null)
              return null;
            return new FirefoxProfile(profileDir);
     }
};
FirefoxProfile profile = profileini.getProfile("CustomSeleniumProfile");
//profile.setEnableNativeEvents(false);

driver = new FirefoxDriver(profile);
//ffDriver.manage().deleteAllCookies();
driver.get("http://www.google.com");