Пропустите user-agent через вебдрайвер в Selenium - PullRequest
9 голосов
/ 27 ноября 2011

Я работаю над проектом очистки сайта, используя Selenium в Python. Когда я открываю домашнюю страницу через браузер, она открывается правильно.

Но когда я пытаюсь открыть веб-страницу через webdriver() в Selenium, она открывает совершенно другую страницу.

Я думаю, что он может обнаружить user-agent (не уверен, как он называется) и может проверить свойства браузера или что-то еще.

Можно ли передать свойства через webdriver(), чтобы загрузить нужную домашнюю страницу.

Спасибо

Ответы [ 2 ]

27 голосов
/ 14 мая 2012

Изменение пользовательского агента в Python-версии веб-драйвера выполняется путем изменения профиля вашего браузера.Я сделал это только для webdriver.Firefox(), передав параметр профиля.Вам нужно сделать следующее:

from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override","your_user_agent_string")
driver=webdriver.Firefox(profile)

Каждый раз, когда вы захотите изменить пользовательский агент, вам нужно будет перезапустить веб-браузер (т.е. снова позвонить driver=webdriver.Firefox(profile))

Если выне зная, что это за строка вашего пользовательского агента, выполните поиск «что такое мой пользовательский агент» в браузере, который правильно отображает страницу, и просто скопируйте и вставьте ее.

Надеюсь, что она сортируется.

1 голос
/ 03 декабря 2011

Предполагая, что пользовательский агент является проблемой, в Java вы можете изменить его следующим образом:

FirefoxProfile profile = new FirefoxProfile();
profile.addAdditionalPreference("general.useragent.override", "some UA string");
WebDriver driver = new FirefoxDriver(profile);

См. Документацию здесь .

...