Java 在多种方法中使用单个驱动程序实例&;班级
我创建了两个包,每个包包含一个java类文件。第一个包中的实用程序类启动驱动程序并使用方法关闭驱动程序-Java 在多种方法中使用单个驱动程序实例&;班级,java,selenium,webdriver,driver,instance,Java,Selenium,Webdriver,Driver,Instance,我创建了两个包,每个包包含一个java类文件。第一个包中的实用程序类启动驱动程序并使用方法关闭驱动程序-launchDriver()&closeDriver()。在第二个包示例中,java类文件包含对这些方法的调用。使用launchDriver()成功启动驱动程序,但当驱动程序被传递到closeDriver方法时,该值变为null 请提供解决方案。代码如下所示 public class Utility { public static WebDriver driver; publ
launchDriver()
&closeDriver()
。在第二个包示例中,java类文件包含对这些方法的调用。使用launchDriver()
成功启动驱动程序,但当驱动程序被传递到closeDriver
方法时,该值变为null
请提供解决方案。代码如下所示
public class Utility {
public static WebDriver driver;
public static String driverpath="E:\\Drivers";
@Test
public static WebDriver launchDriver(final String browser,final String url){
if(browser=="firefox"){
WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get(url);
}else if(browser=="chrome"){
System.setProperty("webdriver.chrome.driver", driverpath+"\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.manage().window().maximize();
driver.get(url);
}else if(browser=="ie"){
System.setProperty("webdriver.ie.driver", driverpath+"\\IEDriverServer.exe");
WebDriver driver=new InternetExplorerDriver();
driver.manage().window().maximize();
driver.get(url);
}else{
WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get(url);
}
return driver;
}
@Test
public static WebDriver closeDriver(WebDriver driver){
Utility.driver=driver;
driver.quit();
return driver;
}
}
测试包中的类示例
public class Example{
@Test
public static void launchConfig(){
Utility.launchDriver("chrome", "https://www.google.com");
//Utility.launchDriver("firefox","www.google.com");
Utility.closeDriver(Utility.driver);
}
}
创建一个抽象测试类,并让您的测试类扩展它。您的抽象测试类可能如下所示:
public abstract class Abstract test {
//delcare driver
public static WebDriver driver;
//Assign the correct driver
@BeforeSuite
public void webdriverSetUp() {
if(browser=="firefox"){
WebDriver driver=new FirefoxDriver();
} else if(browser=="chrome"){
WebDriver driver=new ChromeDriver();
} else if(browser=="ie"){
WebDriver driver=new InternetExplorerDriver();
} else{
WebDriver driver=new FirefoxDriver();
}
}
//call getDriver() in your tests
public static WebDriver getDriver() {
return driver;
}
}
只是别忘了你可能会想清除测试方法之间的所有cookie 没有任何内容分配给
实用程序.driver
,因此将其传递给closeDriver时为空。您应该检查静态变量和与类变量同名的局部变量的用法。@Saket..cn您编写了一些代码来分配实用程序中的驱动程序..我知道您要求我在实用程序中创建一个构造函数。。此外,如果我想在这里使用“this”关键字,它会有帮助吗?我们如何应用它。。