blob: e52a9cff94a3ee1ca0e97fe72de3140ab334ac5f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package com.mavlushechka.a1qa.driverUtils;
import com.mavlushechka.a1qa.models.Browser;
import com.mavlushechka.a1qa.utils.JSONParser;
import com.mavlushechka.a1qa.utils.LoggerUtils;
import com.mavlushechka.a1qa.utils.StringUtils;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
public class WebDriverFactory {
private WebDriverFactory() {
}
protected static WebDriver createWebDriver() {
switch (Browser.valueOf(StringUtils.convertToConstantCase(JSONParser.parse("config", "browser.name")))) {
case CHROME -> {
LoggerUtils.info("Creating ChromeDriver.");
return createChromeDriver();
}
case FIREFOX -> {
LoggerUtils.info("Creating FirefoxDriver.");
return createFirefoxDriver();
}
default -> {
LoggerUtils.error("Incorrect browser name.");
throw new IllegalStateException("Incorrect browser name.");
}
}
}
private static ChromeDriver createChromeDriver() {
ChromeOptions chromeOptions = new ChromeOptions();
WebDriverManager.chromedriver().setup();
if (Boolean.parseBoolean(JSONParser.parse("config", "browser.isIncognito"))) {
LoggerUtils.info("Turning on Chrome incognito mode.");
chromeOptions.addArguments("--incognito");
}
if (Boolean.parseBoolean(JSONParser.parse("config", "browser.isKiosk"))) {
LoggerUtils.info("Turning on Chrome kiosk mode.");
chromeOptions.addArguments("--kiosk");
}
return new ChromeDriver(chromeOptions);
}
private static FirefoxDriver createFirefoxDriver() {
FirefoxOptions firefoxOptions = new FirefoxOptions();
WebDriverManager.firefoxdriver().setup();
if (Boolean.parseBoolean(JSONParser.parse("config", "browser.isIncognito"))) {
LoggerUtils.info("Turning on Firefox incognito mode.");
firefoxOptions.addArguments("--private");
}
if (Boolean.parseBoolean(JSONParser.parse("config", "browser.isKiosk"))) {
LoggerUtils.info("Turning on Firefox kiosk mode.");
firefoxOptions.addArguments("--kiosk");
}
return new FirefoxDriver(firefoxOptions);
}
}
|