当我通过 RDP 连接到 Windows Server 2012R2 Azure VM 时,我的分辨率为 1600x900,这与我的客户端 PC 分辨率相对应。但是,当我使用 VSO 代理在这台计算机上运行 selenium UI 测试时,它们失败,因为代理 session 的屏幕分辨率为 1024x768。在设备管理器中,我可以看到显示适配器是 Microsoft Hyper-V Video。当我通过 RDP 连接访问屏幕分辨率部分时,我只能看到我选择的分辨率并呈灰色,并且还显示消息“无法从远程 session 更改显示设置”。 是否可以更改在 Azure VM 上运行的 Windows Server 2012R2 的默认屏幕分辨率? 我尝试将 DefaultSettings.XResolution 和 DefaultSettings.YResolution 值添加到注册表,但没有帮助。
最佳答案
尝试在 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 内的内容所需的任何内容。
关于windows - 设置azure windows vm默认分辨率以运行selenium脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49378374/