当我通过RDP连接到我的Windows Server 2012R2 Azure VM时,我的分辨率为1600x900,这与我的客户端PC分辨率相对应。但是,当我使用VSO代理在此计算机上运行selenium UI测试时,它们会失败,因为代理会话的屏幕分辨率为1024x768。在设备管理器中,我可以看到显示适配器是Microsoft Hyper-V Video。当我通过RDP连接时访问屏幕分辨率部分时,我只能看到我的分辨率被选中并变灰并且还显示消息"显示设置无法从远程会话更改#34;。 是否可以更改在Azure VM上运行的Windows Server 2012R2的默认屏幕分辨率? 我尝试将DefaultSettings.XResolution和DefaultSettings.YResolution值添加到注册表中,但它没有帮助。
答案 0 :(得分:0)
尝试在iFrame中加载网站并在iFrame标记中声明宽度/高度属性。生成的窗口在可视桌面分辨率的边界之外打开,允许测试比桌面分辨率支持的更多屏幕分辨率。
调用iFrame:
driver.Navigate().GoToUrl("file:///E:/iframe.html");
示例iFrame内容:
<iframe id="theiframe" src="https://www.SomeSiteToTest.com" width=1800 height=750 align="center" frameBorder="0" ></iframe>
将Selenium驱动程序焦点切换到iFrame:
driver.SwitchTo().Frame(driver.FindElement(By.Id("theiframe")));
现在,您可以使用FindElement或任何您需要的内容使用iFrame中的内容。
答案 1 :(得分:0)
我遇到了同样的问题,在开始测试之前无法手动设置RDP连接。我们测试的网站也在考虑机器分辨率而不是浏览器大小。我所做的是确保在构建过程中自动设置RDP会话到我需要测试的每台机器。 See this answer