Ở bài này mình sẽ cho mọi ngừoi một cách khác để thực hiện mục đích này bằng cách sử dụng enum:
Đầu tiên mình tạo một enum như dưới đây :
Code: Select all
package automation;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import java.util.Arrays;
import java.util.function.Supplier;
public enum Browser {
FIREFOX("firefox", FirefoxDriver::new),
CHROME("chrome", ChromeDriver::new),
IE("ie", InternetExplorerDriver::new);
private String name;
private Supplier<WebDriver> driverSupplier;
Browser(String name, Supplier<WebDriver> driverSupplier) {
this.name = name;
this.driverSupplier = driverSupplier;
}
public String getName() {
return name;
}
public WebDriver getDriver() {
return driverSupplier.get();
}
public static Browser fromString(String value) {
for (Browser browser : values()) {
if (value != null && value.toLowerCase().equals(browser.getName())) {
return browser;
}
}
System.out.println("Invalid driver name passed as 'browser' property. "
+ "One of: " + Arrays.toString(values()) + " is expected.");
return FIREFOX;
}
}
Code: Select all
package automation;
import org.openqa.selenium.WebDriver;
import java.io.File;
public class WebDriverFactory {
public static WebDriver createWebDriver() {
Browser browser = Browser.fromString(System.getProperty("browser"));
return browser.getDriver();
}
}
và dưới đây là cách dùng
Code: Select all
public class Debug {
// public static final String
public static void main(String[] args) {
WebDriverFactory.createWebDriver();
}
}
-Dbrowser=chrome chẳng hạn.