Careeroza
Browsers and Headless Mode
Chrome, Firefox, Edge
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
static WebDriver createDriver(String browser) {
return switch (browser.toLowerCase()) {
case "firefox" -> new FirefoxDriver();
case "edge" -> new EdgeDriver();
default -> new ChromeDriver();
};
}Note: Safari: enable "Allow Remote Automation" in Safari's Develop menu on a Mac, then use new SafariDriver().
Headless Chrome
Headless means the browser runs without a visible window. It is faster and is the normal mode on CI servers that have no screen.
import org.openqa.selenium.chrome.ChromeOptions;
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new"); // the new headless mode (Chrome 109+)
options.addArguments("--window-size=1920,1080");
WebDriver driver = new ChromeDriver(options);
driver.get("https://shopease.example.com");
System.out.println(driver.getTitle());
driver.quit();Example
No window opens; the console still prints:
Run HeadlessTest.main()Example output
ShopEase - Online Shopping for Electronics, Fashion and More
Choosing the Browser from Outside
Example
Teams pass the browser name as a system property (mvn test -Dbrowser=firefox). This runnable example shows the selection logic:
public class Main {
static String driverFor(String browser) {
return switch (browser.toLowerCase()) {
case "firefox" -> "FirefoxDriver";
case "edge" -> "EdgeDriver";
default -> "ChromeDriver";
};
}
public static void main(String[] args) {
String fromCommandLine = System.getProperty("browser", "chrome"); // not set here, so default
System.out.println("browser=" + fromCommandLine + " -> " + driverFor(fromCommandLine));
for (String b : new String[] {"Firefox", "EDGE", "safari?"}) {
System.out.println("browser=" + b + " -> " + driverFor(b));
}
}
}Output
browser=chrome -> ChromeDriver browser=Firefox -> FirefoxDriver browser=EDGE -> EdgeDriver browser=safari? -> ChromeDriver