1

很抱歉,如果这已经得到解答,我试图找到解决方案但仍然没有得到任何东西。

Eclipse正在Selenium webdriver通过MAVEN.

我的问题是,Maven如果发现错误,它将继续永远运行,Selenium driver直到我关闭浏览器的窗口才会关闭。

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

你能帮我么?

提前致谢。

4

1 回答 1

0

重要的是在WebDriver.quit()你完成测试时打电话。

通常在 JUnit 中,这通常意味着在以下位置之一调用它:

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

您应该选择与创建驱动程序对象的位置相反的位置。如果您所有的测试都是 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,在他上面的评论中。他现在显然已经离开了 SO,所以他不能在这里发布他的答案。我也扩展了一点。)

于 2015-11-16T00:06:45.953 回答