设置azure windows vm运行selenium脚本的默认分辨率

时间:2018-03-20 07:18:43

标签: windows azure virtual-machine screen resolution

当我通过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值添加到注册表中,但它没有帮助。

2 个答案:

答案 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