【发布时间】:2013-09-29 12:48:52
【问题描述】:
您好,当我通过计划 java 代码运行测试并使用 WebDriver 的 close() 方法时,它正在关闭相应的浏览器实例。但是当我在任何 @After 注释内的 testNG 类中使用 driver.close() 时,例如
@AfterClass
public void logout()
{
driver.findElement(By.id(someSignOutId)).click();
driver.close();
}
那么它不会关闭浏览器实例。 请尝试以下 2 个代码 sn-ps : 测试NGSnippet:
package unitTest.myTest;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;
public class GoogleTestNGTest {
@Test
public void f() throws InterruptedException
{
WebDriver driver=new FirefoxDriver();
driver.get("http://www.google.com");
Thread.sleep(2000);
driver.close();
}
}
普通代码段:
package unitTest.myTest;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class GoogleTest
{
public static void main(String[] args) throws InterruptedException
{
WebDriver driver=new FirefoxDriver();
driver.get("http://www.google.com");
Thread.sleep(2000);
driver.close();
}
}
这是 testNG 中的一个错误。注意: driver.quit() 正在工作,但我不能使用它,因为当我并行运行测试时,它将关闭我所有仍在运行测试的浏览器实例。蒂亚! Selenium WebDriver 版本:2.33 测试NG:6.8.5 火狐版本:22 Java : 1.7.0.40
【问题讨论】:
-
Mrunal 如果有任何错误,请添加堆栈跟踪。另外,您是在使用 afterclass 以及 @Test 还是仅使用 @Test?
-
您的问题是您的@Afterclass 不在您的班级(或在测试类扩展的班级)中。
-
您好,您可以简单地复制粘贴我上面的代码 sn-ps 并在您身边尝试,您就会知道我的问题。
标签: java selenium selenium-webdriver testng