Selenium 2 - 为IE和Chrome设置用户代理

时间:2011-08-04 11:20:01

标签: webdriver selenium-webdriver

我需要在IE和Chrome中更改用户代理值以进行部分测试。我遇到的唯一的硒2例子只适用于FirefoxDriver。

有没有人设法更改IE和Chrome的用户代理?

标记

4 个答案:

答案 0 :(得分:10)

我知道现在这已经很老了,但我偶然发现它并且几秒钟前我也找到了真正的解决方案(至少对于最新版本的Selenium而言)。

所以我们走了(Python,伪造iPad UA的例子):

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--user-agent=Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3')

driver = webdriver.Chrome(chrome_options=options)

# ...loads of fun...

我希望这对其他有同样问题的人有帮助。哦,它也适用于所有其他Chrome命令行选项。 Njoy;)

答案 1 :(得分:8)

这就是我在python for Chrome中运行它的方法。

 from selenium import webdriver 
 ...
 def setUp(self):
        capabilities = webdriver.DesiredCapabilities.CHROME
        capabilities["chrome.switches"] = ["--user-agent="+USER_AGENT_STRING] 
        cls.driver = webdriver.Chrome(executable_path="servers/chromedriver",desired_capabilities=capabilities)
        self.driver.implicitly_wait(5)
        self.verificationErrors = []

答案 2 :(得分:1)

以下是PHP的答案:

$options = new ChromeOptions();
$options->addArguments(['--user-agent=my fake user-agent string']);
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
$driver = RemoteWebDriver::create($host,$capabilities);

答案 3 :(得分:0)

我终于找到了至少在chrome中如何做到这一点:

capabilities = webdriver.common.desired_capabilities.DesiredCapabilities.CHROME.copy()
capabilities['javascriptEnabled'] = True
options = webdriver.ChromeOptions()
options.add_argument('--user-agent=<YOUR USER AGENT HERE>')

driver = webdriver.Remote(command_executor='http://<YOUR SELENIUM HUB HERE>:4444/wd/hub',desired_capabilities=capabilities, options=options)

来源: https://gist.github.com/thureos/2db0bc44589669a00c22a86503c80bbb https://seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html?highlight=remote