我用selenium + .NET开发了一个框架
我正在使用Bambo代理运行所有测试。一切都很好,除了一件事。 如您所知,chromedrive无法将窗口大小设置为大于实际的机器屏幕分辨率。
我的竹机已经设置了1920x1080分辨率。为了确保它是真正的1920x1080,我写了一个powershell脚本,在代理berofe测试中执行并打印出分辨率。顺便说一句,我有Windows代理的竹代理
但是当webdriver启动浏览器(chrome,firefox或IE)时,它会将浏览器窗口大小限制为1044x788。 看起来这个webdriver从竹代理程序中获得了错误的解析。
如您所知,webdriver不允许设置比实际机器更大的窗口大小。这就是为什么我们将浏览器大小限制为1044x788
无法更改大窗口的大小。例如:Manage().Window.Maximize()
或Manage().Window.Size = new Size (1920x1080)
或使用webdriver启动chrome,为chrome添加一些选项:chromeOptions.AddArgument("--window-size=1920,1080");
它始终限制为1044x788。
有没有人有类似的问题?我可以以某种方式“破解”webdriver打开1920x1080的浏览器吗? Meaby有人知道webdriver是如何检查屏幕分辨率的?如果他在某些Windows文件中寻找分辨率,那么我可以在那里注入1920x1080分辨率吗?
或meaby我错过了竹代理中的一些设置?
为什么这很重要?在同一点上,我遇到的问题是,在这个较小的浏览器上,一些小部件有时会重叠(在屏幕截图上找出它),并且它会使一些测试失败。
当我在笔记本电脑上运行测试时,它总是具有1920x1080分辨率。
P.S。我知道Selenium Grid但我的aproach对我很有用,直到现在:)
在第二次之前我写了另一个PowerShell脚本并在竹机上创建截图,屏幕截图的分辨率为1024x768。所以meaby以某种方式通过机器来表达..
答案 0 :(得分:2)
我知道答案。 Bamboo将所有任务作为Windows服务(而不是用户)运行。这就是为什么我无法看到浏览器和屏幕分辨率错误的原因。有两种解决方案:
与您的用户在该计算机上设置selenium网格集线器和节点,并在您的框架中粘贴集线器的URL。然后,竹子服务将触发由您的“用户”设置的硒网格中心。当你登录虚拟机时你会看到浏览器并且它具有正常的分辨率(我选择了这个解决方案)
我认为可能有另一个解决方案来设置竹子来运行任务而不是作为Windows服务而是作为用户(不确定是否可能)。