Selenium:为不同的浏览器设置远程webdriver用户代理

时间:2014-06-12 11:49:16

标签: python selenium selenium-webdriver user-agent

我期待在Python

中使用远程驱动程序为不同的浏览器设置用户代理

我处于远程硒设置以尝试跟踪的情况 所以我提前询问是否跟踪片段是否正确

我在网上找到了以下方法

1。火狐

    capabilities = DesiredCapabilities.FIREFOX.copy()
    capabilities['general.useragent.override'] = user_agent_string
    driver = Remote(command_executor=server_url, desired_capabilities=capabilities)

以上是否正确?

2。 PHANTOMJS

    # Start Service Phantomjs
    # get service_url
    capabilities = DesiredCapabilities.PHANTOMJS.copy()
    capabilities['phantomjs.page.settings.userAgent'] = user_agent_string
    driver = Remote(command_executor=service_url, desired_capabilities=capabilities)

以上是否正确?

3。 CHROME

    #Not sure about this
    capabilities = DesiredCapabilities.CHROME.copy()
    capabilities['chrome.switches'] = ['--user-agent=' + user_agent_string]
    driver = Remote(command_executor=server_url, desired_capabilities=capabilities)

如果这不起作用(因为我在谷歌上发现了一些问题)

然后,

还有其他方法吗?比如使用Chrome选项?怎么做?

4。 IE

   Does it support or any need ?

此外,是否可以在创建驱动器实例(动态)后更改用户代理?

1 个答案:

答案 0 :(得分:1)

根据selenium文档,使用Firefox Profile在Firefox驱动程序中最好支持更改用户代理。您可以参考下面的python代码:

profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", "some UA string")
driver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.FIREFOX, browser_profile=profile)

是否可以在创建驱动程序实例(动态)后更改用户代理?

目前答案是 NO。

  

RemoteWebdriver仅在会话时更新功能映射   我们无法在其他地方修改它。