【问题标题】:How to close a window after running each test case in Selenium IntelliJ?在 Selenium IntelliJ 中运行每个测试用例后如何关闭窗口?
【发布时间】:2015-07-19 00:47:01
【问题描述】:

我有一组三个测试用例,我想避免保持打开多个浏览器窗口,因为我在 Selenium 中自动化了这个过程。有没有办法在每个测试用例完成后关闭浏览器而不报错?

使用 close() 和 quit() 都会给我错误代码 1。

【问题讨论】:

  • 发布您启动浏览器并尝试关闭它的示例代码。

标签: selenium intellij-idea


【解决方案1】:

我们使用以下方法来处理这些问题。

1) 创建一个基类,它具有 beforeSuite 、 beforeTest 、 afterTest 、 afterSuite 方法,这些方法将始终运行。

2) 每个测试计划都应该扩展这个类来创建驱动和关闭驱动。

BasePage.java

 package com.test.test3;

 import java.lang.reflect.Method;
 import java.util.Date;

 import org.openqa.selenium.WebDriver;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.AfterSuite;


public class BasePage {

public WebDriver driver = null;

private Date start;

/*
 * Below method will initialize the driver once test method started
 * execution
 */
public void initializeDriver(WebDriver driver) {

    this.driver = driver;

}

/*
 * Below method will kill driver
 */
public void tearDown() {

    if (this.driver != null) {
        this.driver.quit();
    }

}

@AfterMethod(alwaysRun = true)
public void afterTestMethod(Method method) {

    // Clean ups for test level services
    tearDown();

}

@AfterSuite(alwaysRun = true)
public void afterTestSuite() {

    tearDown();

}


}

Testplan.java

package com.test.test3;

import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;

public class TestPlan extends BasePage{

@Test(groups = { "test"})
public void test() {

    FirefoxDriver driver = new FirefoxDriver();
    driver.get("http://www.google.com");
    System.out.println("TestAutomation test");
}

@Test(groups = { "test"})
public void test1() {
    FirefoxDriver driver = new FirefoxDriver();
    driver.get("http://www.google.com");
    System.out.println("TestAutomation test");
}

@Test(groups = { "test"})
public void test2() {
    FirefoxDriver driver = new FirefoxDriver();
    driver.get("http://www.google.com");
    System.out.println("TestAutomation test");
}

}

testNg.xml

<suite name="API TEST CASES">

<test name="api test" parallel="methods">

    <groups>

        <run>
            <include name="test" />
        </run>

    </groups>

    <classes>
        <class name="com.test.test3.TestPlan" />
    </classes>

</test>

【讨论】:

    猜你喜欢
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 2011-03-27
    相关资源
    最近更新 更多