设置Azure Windows VM默认分辨率以运行Selenium脚本

4
当我通过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值,但没有帮助。
2个回答

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内部的内容。


0

我遇到了同样的问题,无法在开始测试之前手动设置RDP连接。此外,我们测试的网站是根据机器分辨率而不是浏览器大小来显示的。我的做法是确保在构建过程中自动设置RDP会话到我需要测试的每台机器上。 请参阅此答案


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接