TestDG <test>中的WebDriver实例共享

时间:2015-07-13 05:29:07

标签: java webdriver testng instance

目前,我必须在@Before方法的每个类中创建WebDriver实例。我想知道如何只创建一次WebDriver并在不同的测试中使用它(<test>文件中的testng.xml标记。)

2 个答案:

答案 0 :(得分:0)

有很多方法可以实现这一点。一种方法是创建一个公共驱动程序类

public class Driver {

    public static WebDriver driver=null;



    public static WebDriver startdriver(String browser){


        if(browser.equalsIgnoreCase("Chrome")){

        System.setProperty("webdriver.chrome.driver", "/home/vicky/Documents/Jars/chromedriver");

        driver=new ChromeDriver();

        }else if(browser.equals("Firefox")){

        driver=new FirefoxDriver();

        }
        return driver;

        }

    }

在您的套件前方法中初始化您的驱动程序

@BeforeSuite
    public static void Openbrowser() {

        Driver.startdriver("Firefox");

        Driver.driver.manage().window().maximize();

    }

 //use the driver instance

  @Test

         public void goto(){

         //Accessing the driver static variable by using classname.variable(Driver.driver)

         Driver.driver.get("http://www.google.com")

}

希望这可以帮助你...如果你需要任何进一步的帮助,请回来

答案 1 :(得分:0)

您可以在threadlocal onStart方法中实例化ITestListener's webdriver实例,您可以在测试方法中使用该实例。退出onFinish方法。这将在测试标记中的所有类中的所有方法之间共享驱动程序实例,并为所有测试标记创建新的驱动程序实例。

确保您的并行设置为test或false。