自动化屏幕分辨率

3
我有一个使用LeanFT(Java版)自动化工具的自动化测试项目,涵盖了Web应用程序的UI流程。 Jenkins作业每晚在远程从属RDP虚拟机上执行这些测试。
我意识到有时测试会失败,但无法找到确切的原因。经过调查,我发现如果最后一个登录到虚拟机的用户分辨率与1920 X 1080不同(例如使用不同本地分辨率的笔记本电脑登录),测试将失败。
我的测试中使用了LeanFT VRI方法(可视化相关标识符)来识别没有ID的对象,也就是基于DOM中的其他对象(最接近的x/y轴)来识别对象。因此,这显然与屏幕分辨率有关。
我的问题是: 如何确保我的测试始终以所需的屏幕分辨率启动,而不管上次登录的分辨率如何? 我假设我需要一种方法来通过Jenkins参数覆盖现有分辨率,或者添加一行代码到我的测试项目中以支持分辨率不同于1920 x 1080的情况。
1个回答

0

假设我们在谈论Windows操作系统,您可以通过调用一些WinAPI函数来实现。

此答案所述,您可以使用以下方法:

  1. EnumDisplayDevices以确定可用的显示器
  2. EnumDisplaySettings获取可用分辨率列表。 3.ChangeDisplaySettings设置所需的分辨率。

要在Java中调用这些函数,您可以使用Java Native Access (JNA)。正如他们所提到的:

JNA的权威参考资料(包括概述和使用细节)在JavaDoc中。请阅读概述。如果您遇到已解决的问题,可以在StackOverflow上更容易地找到答案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接