【问题标题】:Maximise Remote IE Browser最大化远程 IE 浏览器
【发布时间】:2012-12-03 22:45:18
【问题描述】:

我在远程 XP 客户端上运行测试已经有一段时间了。我的测试是使用 Selenium 的 WebDriver(2.20.0 版)和 IE 驱动程序(2.20.1.0 版)用 C# 编写的,这些测试在由 Microsoft 实验室管理部门管理的 XP 客户端上远程运行。

我的问题是,在创建 IE 浏览器时,我无法通过 Selenium 调用在客户端上将其最大化。相反,我正在手动尝试以下操作:

_driver.Manage().Window.Size = new Size(System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width, System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height);

除了WorkingArea,我也尝试过Bounds,但无济于事,因为两者都增加了窗口大小,但没有将其正确定位到中心。我认为这是因为虚拟机没有监视器,因此无法知道实际分辨率?我只想调用一些将窗口“最大化”到全屏而不指定大小的东西。

【问题讨论】:

  • _driver.Manage().Window.Maximise(); 有什么问题?它根本没有做任何事情吗?
  • 似乎不是我的驱动程序中的一种方法。我假设的版本控制问题?如果可能,我想避免升级到更新的 Selenium.WebDriver,但如果有必要我可以,只是想确认它解决了我的问题。
  • 从外观上看,.Maximise()是在v2.21中引入的。
  • 为什么要避免升级到较新的版本?错误和增强功能一直在修复,强烈建议您使用最新版本运行。
  • @JimEvans 我完全同意,但是我们很快就会进行部署,并且希望避免引入任何新内容以避免并发症。只是想知道我是否还有其他选择。我相信无论如何我都会推动升级。

标签: c# selenium webdriver virtual-machine microsoft-test-manager


【解决方案1】:

由于您正在远程运行测试并且您需要在客户端调整窗口大小。我建议你通过 JavaScript 注入来实现。

最好的事情......它在客户端执行,所以不用担心。在 JavaScript 中,我首先将窗口移动到 (0,0) 轴,然后将窗口屏幕最大化到最大可用(宽度、高度)。

这是代码......在 C# 中

    IWebDriver driver = new InternetExplorerDriver();
    driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
    driver.Navigate().GoToUrl("http://www.google.com");

    IJavaScriptExecutor JSDriver = (IJavaScriptExecutor)driver;

    JSDriver.ExecuteScript("window.moveTo(0, 0)");
    JSDriver.ExecuteScript("window.resizeTo(screen.availWidth, screen.availHeight);");

我希望这会有所帮助......一切顺利

【讨论】:

  • 客户端现在对我来说更有意义了,谢谢!虽然我认为我很快就会升级到最新的 WebDriver,因为这确实是我应该做的事情!
  • 很高兴知道...它帮助了你。是的,这是强制性的步骤,在您周围发生的积极开发/错误修复应该始终参考最新的 WebDriver 版本。
  • 能够说服我的团队领导升级是必要的,升级让我可以毫无问题地使用 Maximize。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多