Java Selenium Firefox Webdriver有时不关闭

Java Selenium Firefox Webdriver有时不关闭,java,firefox,selenium,selenium-webdriver,Java,Firefox,Selenium,Selenium Webdriver,我的问题是,有时当我测试一个网站时,FF webdriver在测试后没有关闭浏览器窗口,尽管它会继续测试过程,直到打开的窗口太多以至于没有内存。 我尝试过使用driver.close()和driver.quit(),也尝试过这两种方法,但有时它们似乎不起作用。有没有办法强迫司机停车?我试图终止这个过程,但我似乎无法获得已启动的Web驱动程序的PID。。。 我是唯一一个遇到这个问题的人吗?嗯,我不确定你的代码是什么样子的(因为你没有提供),但是这种测试的所有流程都是使用以下方法创建类 public

我的问题是,有时当我测试一个网站时,FF webdriver在测试后没有关闭浏览器窗口,尽管它会继续测试过程,直到打开的窗口太多以至于没有内存。 我尝试过使用driver.close()和driver.quit(),也尝试过这两种方法,但有时它们似乎不起作用。有没有办法强迫司机停车?我试图终止这个过程,但我似乎无法获得已启动的Web驱动程序的PID。。。
我是唯一一个遇到这个问题的人吗?

嗯,我不确定你的代码是什么样子的(因为你没有提供),但是这种测试的所有流程都是使用以下方法创建类

public class TestClass {

     private WebDriver driver;

     @BeforeClass
     public void setUp() {
         driver = new FirefoxDriver(); //or any other one
     }

     @Test
     public void test1() {}

     @Test
     public void test2() {}

     @AfterClass
     public void tearDown() {
         driver.quit();
     }
}

请注意,您不必在测试方法中调用
WebDriver#close
WebDriver#quit
,您只需在测试过程中重用浏览器会话。

您需要在框架中调用
driver.quit()
,对每个测试用例进行拆卸,正如您应该在框架设置中为每个测试用例分配它一样。
看看这里,它多少描述了您的问题。

我让Firefox使用driver.quit()。我所做的是卸载我的当前版本,并从Modzilla公开的目录下载了旧版本的Firefox:

我从这里下载的版本是“Firefox Setup 27.0.exe”:

从那以后一切都正常了


在切换Firefox版本之前,我使用Firefox浏览器从这里下载Selenium IDE:

Selenium IDE是一个Firefox插件

我认为发生的事情是这样的=当我有Firefox版本32(最新版本)并且我查看“扩展”选项时,Selenium IDE不会出现。现在我有了Firefox版本27,Selenium IDE出现了,它看起来像这样:

如果您的程序中没有
@Aftermethod
@AfterClass
注释,您可以使用try/catch/finally块,将driver.quit()或driver.close()放在finally方法中。不过我不确定是否同意这一点。。每个方法都应调用
@Before
@Before
方法。我想这取决于测试场景,我通常尝试用一个类测试一个页面,所以这种方法是有意义的。不管怎样,说得对!当您使用
@BeforeClass
@AfterClass
时,方法必须是静态的,因此实例变量也是静态的。您是对的,这就是JUnit中的工作方式。然而,在TestNG中,方法不必是静态的。