14

如以下博客所述,我们可以在 selenium 测试运行期间修改屏幕分辨率。 http://blog.testingbot.com/2013/03/15/screen-resolution-option-now-available-for-all-selenium-tests

尝试了以下代码(如“ https://saucelabs.com/docs/additional-config ”中所述),但未设置指定的分辨率。这仍然不适用于 Selenium 吗?

DesiredCapabilities dc=new DesiredCapabilities();    
dc.setCapability("screen-resolution","1280x1024");
4

4 回答 4

26

酱实验室!=硒

Sauce 实验室使用该功能为您提供具有所需分辨率的 VM,这不是 Selenium 本身知道的功能。

Selenium 无法修改您的桌面分辨率!

如果您想在 Selenium 中修改浏览器大小以使其匹配特定分辨率,您可以执行以下操作:

driver.manage().window().setSize(new Dimension(1024, 768))

Opera 驱动程序不支持上述操作,因此您需要执行以下操作:

DesiredCapabilities capabilities = DesiredCapabilities.opera()
capabilities.setCapability("opera.arguments", "-screenwidth 1024 -screenheight 768")

虽然设置浏览器大小与设置屏幕分辨率不同,但它应该满足您的所有意图和目的。

于 2013-09-04T07:43:15.853 回答
6

Selenium 是一个浏览器自动化框架,它的工作是驱动浏览器,而不是自动化你的系统。我认为 Selenium 不会实现诸如设置屏幕分辨率之类的功能。设置分辨率与浏览器自动化毫无关系。

我不知道你为什么要改变分辨率......只是改变你的浏览器窗口的大小怎么样?如果您正在测试响应式设计的页面,您可以这样做。

driver.manage().window().setSize(new Dimension(800, 600));
于 2013-09-03T20:08:17.067 回答
2

的目的DesiredCapabilities是告诉网格在哪里运行你的测试。

因此,如果有一个远程节点以您指定的分辨率连接到网格1280x1024,则测试将在该节点上运行。如果任何其他节点没有此分辨率,则测试将不会在这些节点上运行。

如果您没有在 中指定屏幕分辨率DesiredCapabilities,则测试将在具有任何分辨率的节点上运行。

Selenium 的这一特性实际上并不会改变或修改测试节点的屏幕分辨率。它只告诉网格在哪些节点上运行或不运行您的测试。

于 2013-09-03T16:29:41.947 回答
0

您感兴趣的事情可能最好通过本机 Java 代码完成,而不是通过 Web 浏览器测试框架 Selenium。

通过 Java 更改分辨率的问题在 StackOverflow 上的另一个线程中得到解决。

swing - 在 Java 中更改屏幕分辨率

虽然我很好奇你为什么要这样做,因为你没有在上面解释,可能会导致社区更好的回应。=)

于 2013-09-03T18:40:58.083 回答