如何在 TFS 2015 中增加 Test Agent 的屏幕分辨率

How to increase the screen resolution on Test Agent in TFS 2015

我正在使用 TFS 2015 触发 Selenium 自动化测试套件。由于某些 HTML 元素重叠,很少有测试用例失败,这是由于 TFS 服务帐户打开的会话的屏幕分辨率较小(以编程方式,我在 运行 测试方法时截取了屏幕截图在 TFS 中)。当我从 Visual Studio 或通过本地 CMD 或 TFS 服务器中的远程桌面会话 运行 时,所有测试用例都通过了。

我尝试使用以下技术增加屏幕分辨率,但保存在 TFS 服务器中的屏幕截图仍然显示较小的屏幕尺寸。

  1. 增加 window 尺寸:

driver.Manage().Window.Size = new Size(x, y);

  1. Chrome 功能 - 分辨率
DesiredCapabilities caps = new DesiredCapabilities();
caps.SetCapability("resolution", "1920x1080");
  1. Chrome 能力 - Window 尺寸
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("--window-size=1300,1000");
  1. 最大化 window driver.manage.window.maximize();

None 这些方法之所以有效,是因为 TFS 服务帐户打开的会话的屏幕分辨率较小

当我 运行 使用 Headless 选项的测试用例时,浏览器 windows 打开最大 window 大小但测试失败,因为 selenium 可以't 识别元素 (NoSuchElementException) :

var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("headless");

(我正在自动化的项目是一个 ReactJS 项目)

我想知道一种在从 TFS 代理执行测试时增加屏幕大小的方法。 谢谢

chromeOptions.addArgument("--headless");
chromeOptions.addArgument("--disable-gpu");
chromeOptions.addArgument("--window-size=1920,1080")

WebDriver driver  = new ChromeDriver(chromeOptions);

在此之后不要使用 browser.maximize 它会将 windows 大小重置为系统默认值。

也试试:

chromeOptions.addArguments("--headless","--disable-gpu","--window-size=1920,1080")

WebDriver driver  = new ChromeDriver(chromeOptions);

调试技巧

查看测试是否通过相同 window 大小但非无头模式

如果它确实通过了,那是因为执行速度更快,无头浏览器比非无头浏览器更快,因此您需要为这些元素添加更多显式等待