Open Browser tren Java 8

Nơi các bạn có thể tìm thấy mọi thông tin cần thiết về Selenium testing tool
Forum rules
Nơi trao đổi, chia sẻ thông tin liên quan đến testing tool Selenium.
Nên search trước khi post bài.
Post Reply
cuhavp
Jr. Tester
Posts: 60
Joined: Mon 21 Jan, 2013 3:52 pm
Contact:

Open Browser tren Java 8

Post by cuhavp » Wed 10 Apr, 2019 3:22 pm

Ở bài post trước mình có tạo một topic open browser trên java 8 sử dụng thư viện JavasLang
Ở 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;
  }
}

Sau đó mình tạo tiếp một abstract class tên là WebDriverFactory

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();
  }

}
Ở đây mình dùng supplier của Java 8 để mình tránh sử dụng các câu lệnh điều kiện như if hoặc switch case,
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();

  }
}

với cách code này bạn hoàn toàn an tâm khi sử dụng run command line trong maven với tham số truyền vào là
-Dbrowser=chrome chẳng hạn.



Post Reply

Return to “Selenium”