Selenium - 更改节点服务的分辨率

Selenium - change resolution on node service

我在 windows server 2012 R2 上使用 Selenium 3.01。 通过 webdriver.

远程进行测试 运行

问题是当节点作为服务运行时分辨率太小并且测试不断失败。

当 运行 节点作为进程登录时一切都很好,因为分辨率要好得多。

我可以看到在拍摄失败照片时的巨大差异。

如何更改分辨率?

Driver.set_windowsize(x,y) 

Driver.maximize_window()

由于服务器的分辨率较小,无法正常工作。

有什么想法吗? 谢谢

认为这是服务限制,我们遇到过这样的问题,解决方案是从命令行启动节点。

  • 连接到远程机器
  • 从命令行启动节点
  • 关闭连接(不是通过注销,而是通过单击 'X' 按钮)

这样您的会话就会挂起,如果您希望自动执行此命令,您可以尝试将批处理文件添加到您的启动。

我解决了这个问题。 我在 VMware ESX 上使用虚拟机。

首先我注意到,当通过控制台登录并尝试更改分辨率时,最大分辨率比预期的要小很多。

为了最大化最大分辨率,我遵循了这个 VMware KB

现在,通过编辑注册表值更改默认分辨率:

  1. 导航至:

    HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{Address of primary video card}[=11=]00\

  2. 找到DefaultSettings.XResolution那是你的X轴。编辑为您想要的小数。 IE 1152.

  3. 找到 DefaultSettings.YResolution。那是你的 Y 轴。编辑为您想要的小数。 IE 863.

  4. 重启,大功告成

此外,请确保您的 Selenium node 作为具有 Allow service to interact with desktop 的本地系统运行。

现在您可以通过您的代码更改 chrome window 分辨率:

Driver.set_windowsize(x,y)