如下面的博客所述,我们可以在硒测试运行期间修改屏幕分辨率。 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");
答案 0 :(得分:21)
酱汁实验室!= Selenium
Sauce labs使用该功能为您提供具有所需分辨率的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")
虽然设置浏览器大小与设置屏幕分辨率不同,但它应该满足您的所有意图和目的。
答案 1 :(得分:4)
Selenium是一个浏览器自动化框架,它的工作是驱动浏览器,而不是自动化你的系统。我认为在Selenium中不会实现诸如设置屏幕分辨率等功能。设置分辨率与浏览器自动化无关。
我不确定您为什么要更改分辨率...如何只更改浏览器窗口的大小?如果您正在测试响应式设计页面,那么您可以这样做。
driver.manage().window().setSize(new Dimension(800, 600));
答案 2 :(得分:1)
DesiredCapabilities
的目的是告诉Grid在哪里运行测试。
因此,如果远程节点使用您指定的分辨率1280x1024
连接到网格,则测试将在该节点上运行。如果任何其他节点没有此分辨率,则测试将不会在这些节点上运行。
如果您未在DesiredCapabilities
中指定屏幕分辨率,则测试将在具有任何分辨率的节点上运行。
Selenium的这个功能实际上并没有改变或修改测试节点的屏幕分辨率。它只告诉网格运行或不运行测试的节点。
答案 3 :(得分:0)
您感兴趣的可能最好通过本机Java代码而不是通过Selenium(一种Web浏览器测试框架)来完成。
通过Java更改分辨率的问题在StackOverflow上的另一个线程中得到了解决。
swing - Change screen resolution in Java
虽然我很好奇您为什么要这样做,但是由于您没有解释上述情况并且可能会导致社区做出更好的回应。 =)