【问题标题】:How to change useragent-string in runtime chromedriver selenium如何在运行时 chromedriver selenium 中更改用户代理字符串
【发布时间】:2018-05-16 16:14:45
【问题描述】:

我正在开发一些希望我更改用户代理的东西。 在开始时,我将用户代理提供为...(到 chromedriver)

options.addArguments("--user-agent=Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25");

但是我想将其更改为 Windows 用户代理,或者只是删除此用户代理。

如何在 Selenium Java 中以编程方式实现这一点。

【问题讨论】:

    标签: java selenium selenium-webdriver selenium-chromedriver user-agent


    【解决方案1】:

    ,一旦配置了 WebDriver,您就无法更改活动浏览会话useragent通过 ChromeOptionsaddArguments 属性的实例并启动一个活动的浏览会话

    即使您能够从活动的浏览会话中提取Session IDCookiesUser Agent 和其他会话属性,您仍然不会能够将这些属性更改/编辑为 WebDriver 的 HOOK。

    要更改 用户代理,您必须重新配置 WebDriver 实例并启动新的浏览会话

    【讨论】:

    • ((JavascriptExecutor)driver).executeScript("return navigator.userAgent");这是获取useragent的一种方式,我们不能通过这个来改变它吗?
    【解决方案2】:

    正如@Debanjan 所说,您无法在运行时更改用户代理,但您是否尝试使用 ModifyHeader 插件,您可以将其设置为更改用户代理,但不能在已实例化的驱动程序中更改。您可以在 webDriver 实例化期间进行设置,也可以尝试使用 ChromeOptions。

    ChromeOptions options = new ChromeOptions();
    options.addExtensions(new File("src/main/resources/idgpnmonknjnojddfkpgkljpfnnfcklj.crx"));
    
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(ChromeOptions.CAPABILITY, options);
    

    ChromeOptions chrome = new ChromeOptions();
    chrome.addArguments("user-agent=YOUR_USER_AGENT");
    

    【讨论】:

      猜你喜欢
      • 2014-02-24
      • 1970-01-01
      • 2013-05-14
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多