You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium模拟Android设备打开网站(移动端视图)失败求助

解决ChromeDriver模拟Android手机访问网站的问题

我来帮你搞定这个问题!你尝试通过修改User-Agent让ChromeDriver模拟Android手机访问网站但没生效,大概率是配置方式或者ChromeDriver的行为细节没处理好,试试下面几个方案:

方案1:使用专门的User-Agent设置方法(推荐)

直接通过AddArgument设置User-Agent时,空格和特殊字符可能导致参数解析失败,换成ChromeOptions提供的AddUserAgent方法会更可靠:

ChromeOptions options = new ChromeOptions();
// 用官方提供的方法设置User-Agent,自动处理格式问题
options.AddUserAgent("Mozilla/5.0 (Linux; Android 8.1.0; Phone) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36");
driver = new ChromeDriver("./", options);

如果还是想用AddArgument,记得给整个User-Agent字符串加上双引号(注意转义):

options.AddArgument(@"user-agent=""Mozilla/5.0 (Linux; Android 8.1.0; Phone) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36""");

方案2:开启完整的移动设备模拟(更彻底)

很多网站不仅检测User-Agent,还会检查屏幕分辨率、触摸支持等设备特征。直接让Chrome模拟移动设备,能更接近真实的手机访问场景:

ChromeOptions options = new ChromeOptions();
// 直接选择预设的设备,比如Pixel 2
options.EnableMobileEmulation("Pixel 2");
driver = new ChromeDriver("./", options);

如果你需要自定义设备参数(比如特定的屏幕尺寸、像素比),可以用下面的方式:

ChromeOptions options = new ChromeOptions();
var deviceSettings = new Dictionary<string, object>
{
    { "width", 412 },       // 屏幕宽度
    { "height", 732 },      // 屏幕高度
    { "pixelRatio", 2.625 },// 像素密度
    { "touch", true },      // 支持触摸
    { "mobile", true }      // 标记为移动设备
};
var mobileEmulation = new Dictionary<string, object>
{
    { "deviceMetrics", deviceSettings },
    { "userAgent", "Mozilla/5.0 (Linux; Android 8.1.0; Phone) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36" }
};
options.AddAdditionalCapability("mobileEmulation", mobileEmulation);
driver = new ChromeDriver("./", options);

方案3:检查ChromeDriver与Chrome版本兼容性

如果上面的方法都没生效,先确认你的ChromeDriver版本和本地安装的Chrome浏览器版本完全匹配——版本不兼容会导致很多配置失效。比如Chrome 73对应的ChromeDriver必须是73.x.x.x版本,下载对应版本即可。

验证配置是否生效

你可以执行一段JavaScript来检查当前的User-Agent是否正确设置:

string currentUserAgent = (string)driver.ExecuteScript("return navigator.userAgent");
Console.WriteLine("当前User-Agent:" + currentUserAgent);

如果输出的是你设置的Android User-Agent,说明配置已经生效了。

内容的提问来源于stack exchange,提问作者32byTe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:28:20