很抱歉,如果这已经得到解答,我试图找到解决方案但仍然没有得到任何东西。
我Eclipse正在Selenium webdriver通过MAVEN.
我的问题是,Maven如果发现错误,它将继续永远运行,Selenium driver直到我关闭浏览器的窗口才会关闭。
如果在本地发生任何事情,我可以手动执行此操作,但问题是当我尝试使用时Jenknins,如果任何失败,Jenkins作业将一直运行,直到我停止它。
你能帮我么?
提前致谢。
重要的是在WebDriver.quit()你完成测试时打电话。
通常在 JUnit 中,这通常意味着在以下位置之一调用它:
@After类@AfterClass,@Rule类@ClassRule,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,所以他不能在这里发布他的答案。我也扩展了一点。)