很抱歉,如果这已经得到解答,我试图找到解决方案但仍然没有得到任何东西。
我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,所以他不能在这里发布他的答案。我也扩展了一点。)