我在Selenium 3.01
上使用windows server 2012 R2
。
测试通过webdriver
远程运行。
问题是当节点作为服务运行时,分辨率太小而且测试仍然失败。
在登录时将节点作为进程运行时,一切都很好,因为分辨率要好得多。
我可以看到在失败时捕捉快照的巨大差异。
如何更改分辨率?
Driver.set_windowsize(x,y)
或者
Driver.maximize_window()
因为服务器的分辨率较小而无法正常工作。
有什么想法吗? 谢谢
答案 0 :(得分:3)
我解决了这个问题。 我在VMware ESX上使用虚拟机。
首先,我注意到当通过控制台登录并尝试更改分辨率时,最大分辨率远低于预期。
为了最大限度地提高最高分辨率,我遵循了VMware KB。
现在,通过编辑注册表值来更改默认分辨率:
导航至:
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{Address of primary video card}\0000\
查找DefaultSettings.XResolution
这是您的X轴。编辑为您想要的十进制数。 IE 1152。
查找DefaultSettings.YResolution
。那是你的Y轴。按小数编辑为您想要的结果。 IE 863。
重新启动,您已完成。
此外,请确保您的Selenium node
作为本地系统运行Allow service to interact with desktop
。
现在您可以通过代码更改Chrome窗口分辨率:
Driver.set_windowsize(x,y)
答案 1 :(得分:0)
认为这是一个服务限制,我们有这样的问题,解决方案是从命令行启动节点。
通过这种方式,您可以暂停会话,如果您希望自动执行此命令,可以尝试将批处理文件添加到启动中。