在Selenium测试运行后如何关闭多个浏览器?

时间:2016-06-02 14:51:52

标签: java eclipse google-chrome selenium testng

我在Eclipse和Chrome中使用Selenium / TestNG和Java作为我的浏览器。每当我使用TestNG方法启动脚本时,我会得到一个空的Chrome页面,我认为该页面是" parent"驱动程序本身的窗口。然后,当我的测试方法在某处导航时,我会得到第二个Chrome窗口,打开我导航到的实际页面。经过所有测试,在拆解时,我试图用driver.quit关闭所有内容,但这只会关闭其中一个浏览器。

是否有一种相当简单的方法(我是Java,Selenium和TestNG的初学者)关闭所有已打开的浏览器?

这是我目前的代码的简化版本。我使用一个基类和另一个扩展基类的类。第二类包含所有测试方法。

package TestNG;

import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import java.lang.Runtime;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;


    public class BaseClass {

        public WebDriver driver;

        public BaseClass(){
            System.setProperty("webdriver.chrome.driver", "/Users/foo/Downloads/chromedriver");
            System.setProperty("restart.browser.each.scenario", "false");
            driver = new ChromeDriver();
            driver.manage().window().maximize();
        }   


        @BeforeSuite
        public void setup() {
            System.out.println("Running beforesuite.");
        }

        @AfterSuite
        public void teardown() {
            System.out.println("Running aftersuite.");
            driver.quit(); 
        }
    }

第二节用测试方法:

package TestNG;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import org.openqa.selenium.interactions.Actions;
import org.testng.asserts.*;

public class Userstories extends TestNG.BaseClass {

    @Test
    public void NavToURL() {
        this.driver.get("https:/url.url.se/");
        String expectedTitle = ”Hello”;
        String actualTitle = driver.getTitle();
        Assert.assertEquals(expectedTitle,actualTitle); 
    }
}

0 个答案:

没有答案