Selenium WebDriver测试(Java)后无法关闭Firefox窗口
我知道这里还有一些类似的问题,但我通读了一遍,无法解决我的问题。我对JUNIT注释之类的东西也不是很流利,所以这也让我有点困惑。这就是我所拥有的,我只想在测试成功(或不成功)后关闭firefox窗口Selenium WebDriver测试(Java)后无法关闭Firefox窗口,java,selenium,junit,annotations,webdriver,Java,Selenium,Junit,Annotations,Webdriver,我知道这里还有一些类似的问题,但我通读了一遍,无法解决我的问题。我对JUNIT注释之类的东西也不是很流利,所以这也让我有点困惑。这就是我所拥有的,我只想在测试成功(或不成功)后关闭firefox窗口 提前谢谢,你们是最好的。如果相关的话,我可以提供我的pom.xml。您正在混合新旧JUnit;这就是它不起作用的原因。有两种可能的解决方法: 旧方法:删除注释并将closeWindow()重命名为tearDown()。这将覆盖TestCase中的相应函数 新方法:不要扩展TestCase。然后将使用
提前谢谢,你们是最好的。如果相关的话,我可以提供我的pom.xml。您正在混合新旧JUnit;这就是它不起作用的原因。有两种可能的解决方法:
closeWindow()
重命名为tearDown()
。这将覆盖TestCase
中的相应函数TestCase
。然后将使用注释并调用closeWindow()
方法您的
setUp()
函数已经覆盖了TestCase
中相应的函数,这就是该部分工作的原因。但是,TestCase
不知道closeWindow()
,如果扩展了TestCase
,JUnit似乎会使用不同的运行程序。它到底在做什么,应该做什么?乍一看,代码对我来说很好。我希望它在测试完成后关闭firefox窗口。目前,窗口保持打开状态。您提供的代码看起来不错。在您的checkMain
或logout
函数中,您是否调用了newfirefoxdriver()
函数?是的-正如Nathan所说,这看起来很好。我想是的,但你是以jUnit的身份运行的,对吗?(还有,@SamFrench,刚刚跟随你回到github:)
)嘿,我留下了注释,并将closeWindow()重命名为tearDown(),它可以正常工作。谢谢
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class TestWorkGaps extends TestCase {
private WebDriver driver;
private String baseUrl;
@Before
public void setUp() {
driver = (WebDriver) new FirefoxDriver();
baseUrl = "https://dev.XXX.com";
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
}
@Test
public void test() throws InterruptedException {
driver.get(baseUrl);
success = core.TestCore.checkMain(driver);
if (!success) {
fail("Main page did not load correctly.");
}
//various other tasks
success = core.LoginLogout.logout(driver);
if (!success) {
fail("Not able to logout.");
}
}
@After
public void closeWindow()
{
driver.close();
driver.quit();
}
}