You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Selenium Java运行时修改ChromeDriver的User-Agent

修改或移除ChromeDriver的User-Agent(Selenium Java)

嗨,我来帮你搞定这个问题~下面分两种场景给你具体的实现方法:

一、修改为Windows平台的User-Agent

其实很简单,直接替换你之前设置的--user-agent参数值就可以了。如果你的ChromeOptions实例已经存在,直接重新调用addArguments添加新的UA参数就行——Chrome会自动使用最后设置的那个值,覆盖之前的iPad UA。

给你一个常用的Windows Chrome UA示例代码:

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class UserAgentDemo {
    public static void main(String[] args) {
        // 初始化ChromeOptions(如果已经有现成实例就直接用)
        ChromeOptions options = new ChromeOptions();
        
        // 设置Windows平台的Chrome User-Agent
        String windowsUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36";
        options.addArguments("--user-agent=" + windowsUserAgent);
        
        // 启动ChromeDriver
        ChromeDriver driver = new ChromeDriver(options);
        
        // 验证UA(可选)
        String currentUA = driver.executeScript("return navigator.userAgent").toString();
        System.out.println("当前User-Agent: " + currentUA);
        
        // 后续操作...
        driver.quit();
    }
}

小提示:如果想要更贴合你本地Chrome的UA,可以打开Chrome浏览器,按F12打开开发者工具,在控制台输入navigator.userAgent,复制返回的值就行。

二、移除已设置的User-Agent,恢复默认

如果想要完全移除手动设置的UA,让Driver使用Chrome默认的UA(对应你运行Driver的系统),需要先过滤掉ChromeOptions里已有的--user-agent参数:

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.util.List;
import java.util.stream.Collectors;

public class RemoveUserAgent {
    public static void main(String[] args) {
        // 假设这是你之前设置过iPad UA的ChromeOptions实例
        ChromeOptions options = new ChromeOptions();
        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");
        
        // 过滤掉所有--user-agent开头的参数
        List<String> filteredArguments = options.getArguments().stream()
                .filter(arg -> !arg.startsWith("--user-agent="))
                .collect(Collectors.toList());
        
        // 更新options的参数列表
        options.setArguments(filteredArguments);
        
        // 启动Driver,此时使用默认UA
        ChromeDriver driver = new ChromeDriver(options);
        
        // 验证默认UA(可选)
        String defaultUA = driver.executeScript("return navigator.userAgent").toString();
        System.out.println("默认User-Agent: " + defaultUA);
        
        // 后续操作...
        driver.quit();
    }
}

这样处理后,Driver就会自动使用对应操作系统的默认User-Agent了,比如你在Windows上运行,就会用Windows Chrome的默认UA。

内容的提问来源于stack exchange,提问作者Junaid Khan

火山引擎 最新活动