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