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

为何Azure DevOps流水线中Selenium测试运行于平板模式,本地却为桌面模式?

解决Azure DevOps流水线中Selenium Chrome以桌面模式运行的问题

1. 显式设置Chrome窗口为桌面规格

初始化ChromeDriver时,直接指定桌面级窗口大小或强制最大化,避免虚拟机默认窗口过小触发网站的移动端适配:

ChromeOptions options = new ChromeOptions();
// 方案A:设置主流桌面分辨率(如1920x1080)
options.addArguments("--window-size=1920,1080");
// 方案B:强制窗口最大化(部分虚拟机环境需配合此参数)
options.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(options);

2. 禁用移动端模拟并指定桌面User-Agent

防止流水线环境默认开启设备模拟,同时确保网站识别请求来自桌面端:

ChromeOptions options = new ChromeOptions();
// 关闭自动移动端模拟
options.addArguments("--disable-mobile-emulation");
// 显式设置桌面User-Agent(替换[Chrome版本号]为你使用的实际版本)
options.addArguments("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[Chrome版本号] Safari/537.36");
WebDriver driver = new ChromeDriver(options);

3. 配置Azure DevOps代理的显示分辨率

如果使用微软托管代理,可在流水线YAML中添加步骤,强制设置代理机器的桌面分辨率:

pool:
  vmImage: 'windows-latest' # 根据实际使用的镜像调整(如ubuntu-latest)
steps:
- script: |
    # Windows环境下设置分辨率(需管理员权限)
    powershell -Command "Set-DisplayResolution -Width 1920 -Height 1080 -Force"
  displayName: 'Set Desktop Display Resolution'

4. 排查测试代码中的设备切换逻辑

检查TestNG测试代码及配置,确认没有手动设置移动端分辨率的代码,比如避免出现:

// 这类代码会模拟iPad mini分辨率,需移除
driver.manage().window().setSize(new Dimension(768, 1024));

内容的提问来源于stack exchange,提问作者Puneet Samaiya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:15:35