Selenium - 更改节点服务

时间:2016-12-20 14:16:52

标签: windows selenium selenium-webdriver windows-services selenium-chromedriver

我在Selenium 3.01上使用windows server 2012 R2。 测试通过webdriver远程运行​​。

问题是当节点作为服务运行时,分辨率太小而且测试仍然失败。

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

我可以看到在失败时捕捉快照的巨大差异。

如何更改分辨率?

Driver.set_windowsize(x,y) 

或者

Driver.maximize_window()

因为服务器的分辨率较小而无法正常工作。

有什么想法吗? 谢谢

2 个答案:

答案 0 :(得分:3)

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

首先,我注意到当通过控制台登录并尝试更改分辨率时,最大分辨率远低于预期。

为了最大限度地提高最高分辨率,我遵循了VMware KB

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

  1. 导航至:

    HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{Address of primary video card}\0000\

  2. 查找DefaultSettings.XResolution这是您的X轴。编辑为您想要的十进制数。 IE 1152。

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

  4. 重新启动,您已完成。

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

    现在您可以通过代码更改Chrome窗口分辨率:

    Driver.set_windowsize(x,y) 
    

答案 1 :(得分:0)

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

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

通过这种方式,您可以暂停会话,如果您希望自动执行此命令,可以尝试将批处理文件添加到启动中。