WebDriver FireFoxProfile UserAgent переключение с FireFoxDriver - PullRequest
13 голосов
/ 02 февраля 2012

Мне интересно, могу ли я изменить профиль агента пользователя на лету, не создавая новый экземпляр ForeFoxDriver? У меня есть следующий код, который я могу передать в пользовательском агенте для iphone или ipad и т. Д., Он работает нормально, но мне приходится создавать новый экземпляр для каждого теста, который медленный, поскольку он открывает / закрывает браузер. Например. После выполнения моих тестов с пользовательским агентом iPhone я хотел бы переключить профиль на пользовательский агент Android или пользовательский агент iPad. Получает ли драйвер возможность изменить это без необходимости создания нового экземпляра?

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("general.useragent.override","some user agent, like iphone or iPad");
WebDriver driver = new FirefoxDriver(profile);

// do some tests
// set profile to new user agent
// profile.setPreference("general.useragent.override","some android user agent");

// can i now set the driver to the new profile here and perform more tests on this same instance of the driver?

Ответы [ 4 ]

2 голосов
/ 08 февраля 2012

RemoteWebdriver (родительский класс FirefoxDriver) обновляет карту возможностей только при запуске сеанса (в конструкторе). К сожалению, мы не можем изменить это в другом месте. Я думаю, что это очень хорошая идея.

1 голос
/ 13 февраля 2012

Вероятно, есть только один путь - через расширения.Однако я никогда не пробовал этого ...

FirefoxProfile ffProfile = new FirefoxProfile();
ffProfile.addExtension(new File("path/to/extension") );
WebDriver driver = new FirefoxDriver(ffProfile);

Расширение, с которым он может работать, - это User Agent Switcher: https://addons.mozilla.org/cs/firefox/addon/user-agent-switcher/?src=ss

Но, как уже говорилось, я никогда этого не делал и не имеюподсказка, как управлять аддоном через Selenium

0 голосов
/ 01 мая 2013

Эта работа для меня:

server.addHeader("User-Agent", uaString)
0 голосов
/ 17 мая 2012

В нашей компании мы используем прокси Browsermob, прокси с открытым исходным кодом, написанный на Java. Он прекрасно интегрируется с Selenium, и вы можете управлять им из своего кода. Он служит нам для многих целей, одна из них - манипулирование заголовками.

Способ выполнения описан здесь: https://github.com/webmetrics/browsermob-proxy (раздел Манипуляции HTTP-запросов)

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