加快 WebDriver Firefox Window 的启动

软件测试 硒2 网络驱动程序 浏览器自动化 表现
2022-01-18 15:16:12

当 WebDriver 初始化时,在实际的自动化测试开始之前浏览器窗口启动时有很长的等待时间。我怎样才能加快速度?有没有办法让浏览器窗口始终运行,并且 WebDriver 可能在下次启动时抓住该窗口?如果您有任何聪明的想法,请告诉我。

设置:

NUnit,Selenium C# 客户端驱动程序,Mozilla Firefox 驱动程序,使用 Visual Studio 2010 编写测试(因为我使用的是 C#.NET 客户端驱动程序)

2个回答

不幸的是,firefox webdriver 对象的初始化需要很长时间,您对此无能为力。您可以设置测试,以便在 [TestFixtureSetUp] 方法中创建 FirefoxDriver 实例,然后将相同的 FirefoxDriver 实例用于所有测试。

唯一的潜在问题是,如果浏览器崩溃或挂起(如果您的页面上有错误的 javascript 或其他原因,可能会发生这种情况),那么您将无法恢复,而如果您启动一个新窗口对于每个测试,您将能够恢复。您应该能够编写一些代码来检查以确保在开始每个测试之前浏览器已打开且可用,如果没有,则创建 FirefoxDriver 的新实例。

您可以切换到HTML Unit Driver您的项目是否允许这样做(这可能涉及一些测试更新,因为 FireFox 和 HTMLUnit 驱动程序具有不同的 js 引擎)。
否则,我同意@SamWoods:

  • 在测试套件运行之前启动单个浏览器(FireFox)实例,
  • 在所有测试中重用它,而不是启动另一个。
  • 不要忘记在需要时清理会话数据。
  • 不要忘记检查该浏览器窗口是否仍然存在并且可以访问。