Selenium Grid 2 - удаленный веб-драйвер не устанавливает предпочтения пользовательского агента в FireFox

Я использую selenium server 2.28 на машине с Windows. Я настроил концентратор и узел. Я использую .net для написания тестов. Я использую следующий код для использования пользовательского профиля FireFox (17.0.1) с измененным пользовательским агентом (на iPhone).

FirefoxProfileManager profileManager = new FirefoxProfileManager();
FirefoxProfile profile = profileManager.GetProfile(FireFox_Profile_Name);
profile.SetPreference("general.useragent.override", _sUserAgent);
DesiredCapabilities capability = DesiredCapabilities.Firefox();
capability.SetCapability(FirefoxDriver.ProfileCapabilityName, profile);

И я создаю экземпляр RemoteWebDriver следующим образом:

driver = new RemoteWebDriver(new Uri("hub_uri"), capability);

Когда я проверяю about:config в экземпляре firefox на узле, я вообще не вижу настройки general.useragent.override. Если я использую:

driver = new FirefoxDriver(profile); 

Предпочтение установлено правильно. Я что-то упускаю?


person S.S    schedule 07.01.2013    source источник
comment
Вы также пытались посмотреть значение useragent на whatsmyuseragent.com из браузера, созданного веб-драйвером? Просто чтобы убедиться..?   -  person A.J    schedule 08.01.2013
comment
Эй Джей, я только что проверил, и пользовательский агент не изменился.   -  person S.S    schedule 08.01.2013


Ответы (2)


Сейчас я пытаюсь сделать что-то очень похожее (настройка Firefox на использование аутентификации Windows).

В моем (несколько ограниченном) эксперименте, чтобы заставить это работать, использование только profile будет работать с локальным экземпляром драйвера, но не при общении с Selenium Server. Я могу передать профиль на Selenium Server, используя profile.ToBase64String(), как указано здесь< /а>.

person jheppinstall    schedule 11.01.2013
comment
Спасибо @jheppinstall, это сработало (хотя и не полностью). Когда я использую существующий профиль и передаю его с помощью ToBase64String(), я получаю сообщение об ошибке на концентраторе сетки java.util.zip.ZipException: invalid entry size (expected... but got.... Я создал новый профиль, а затем внес изменения в настройки профиля, прежде чем преобразовать его с помощью `ToBase64String()'. Таким образом, я смог передать профиль узлу. - person S.S; 15.01.2013

Вот как передать пользовательский агент в Grid 2 с помощью Python. Если вам не нужен прокси, просто удалите его.

    myProxy = IP:PORT
    proxy = Proxy({
        'proxyType': ProxyType.MANUAL,
        'httpProxy': myProxy,
        'ftpProxy': myProxy,
        'sslProxy': myProxy,
        'noProxy': '' # set this value as desired
        })

    desired_capabilities = webdriver.DesiredCapabilities.FIREFOX.copy()   
    browser_profile = webdriver.FirefoxProfile()          
    browser_profile.set_preference("general.useragent.override", 'USERAGENT' )           
    desired_capabilities["firefox_profile"] = browser_profile.update_preferences() 
    driver = webdriver.Remote(   command_executor='http://IPADDRESS:4444/wd/hub',desired_capabilities=desired_capabilities, browser_profile=browser_profile, proxy = proxy) 

надеюсь, это поможет

person slh    schedule 24.05.2014