【问题标题】:setting azure windows vm default resolution for selenium scripts to run设置 azure windows vm 默认分辨率以运行 selenium 脚本
【发布时间】:2018-04-19 21:43:43
【问题描述】:
当我通过 RDP 连接到我的 Windows Server 2012R2 Azure VM 时,我的分辨率为 1600x900,这对应于我的客户端 PC 分辨率。但是,当我使用 VSO 代理在这台机器上运行 selenium UI 测试时,它们失败了,因为代理会话的屏幕分辨率为 1024x768。在设备管理器中,我可以看到显示适配器是 Microsoft Hyper-V Video。当我通过 RDP 连接访问屏幕分辨率部分时,我只能看到我选择的分辨率并显示为灰色,并且还显示消息“无法从远程会话更改显示设置”。
是否可以更改在 Azure VM 上运行的 Windows Server 2012R2 的默认屏幕分辨率?
我尝试将 DefaultSettings.XResolution 和 DefaultSettings.YResolution 值添加到注册表,但没有帮助。
【问题讨论】:
标签:
windows
azure
virtual-machine
screen
resolution
【解决方案1】:
尝试在 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 中的内容所需的任何内容。
【解决方案2】:
我遇到了同样的问题,无法在开始测试之前手动设置 RDP 连接。此外,我们测试的网站正在查看机器分辨率而不是浏览器大小。我所做的是确保在我需要测试的每台机器的构建过程中自动设置 RDP 会话。
See this answer