使用selenium webdriver 2时,Maven不会因错误而停止

时间:2013-08-08 10:40:54

标签: java maven selenium jenkins webdriver

我很抱歉,如果已经回答了这个问题,我试图找到一个解决方案但仍然没有得到任何结果。

我正在EclipseSelenium webdriver工作,并通过MAVEN运行代码。

我的问题是如果发现错误,Maven会继续运行,Selenium driver在关闭浏览器窗口之前不会关闭。

如果在本地发生任何事情,我可以手动执行,但问题是当我尝试使用Jenknins时,如果有任何失败,Jenkins作业一直在运行,直到我停止它。

你能帮帮我吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

重要的是在完成测试时致电WebDriver.quit()

通常在JUnit中,这通常意味着在以下某个地方调用它:

  • 使用@After@AfterClass
  • 注释的方法或类
  • 使用@Rule@ClassRule
  • 注释的属性或类
  • 一个RunListener类,通过testFinished()testRunFinished()方法
  • 合适的跑步者类别或
  • 静态拆解代码。

您应该选择与创建驱动程序对象的位置相反的方法。如果您的所有测试都是Selenium WebDriver,并且您打算在单个浏览器窗口中按顺序运行它们(我认为这是小型项目最常见的情况),那么单个RunListener可以很好地隐藏此代码。举个例子:

public class WebDriverContext extends RunListener {
  public static WebDriver DRIVER; // Pretending to be final
  public void testRunStarted(Description descr) {
    DRIVER = new FirefoxDriver();
  }
  public void testRunFinished(Result result) {
    DRIVER.quit();
  }
}

(在上面的评论中,这个答案可以归功于OP。他现在显然已经离开了,所以他不能在这里发布他的答案。我已经也扩大了它。)