Skip to content

Commit befba44

Browse files
committed
Upgrade framework to version 2.7.0
1 parent 1e4f2fe commit befba44

File tree

5 files changed

+340
-313
lines changed

5 files changed

+340
-313
lines changed

CHANGELOG.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
v2.7.0
2+
======
3+
Oct 27, 2025
4+
* Update Selenium 4.38.0 support CDP 142
5+
* Upgrade all libraries latest version
6+
* Update BrowserFactory enum to support Headless mode
7+
* Update TestListener class to support Headless mode
8+
* Update BaseTest class to support Headless mode
9+
110
v2.6.5
211
======
312
Oct 22, 2025

pom.xml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.anhtester</groupId>
88
<artifactId>anhtester-selenium-java</artifactId>
9-
<version>2.6.5</version>
9+
<version>2.7.0</version>
1010
<name>AutomationFrameworkSelenium</name>
1111
<url>https://github.com/anhtester/AutomationFrameworkSelenium</url>
1212
<description>Test Automation Framework Selenium Java with TestNG building by Anh Tester</description>
@@ -24,34 +24,34 @@
2424
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2525
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2626
<java-compiler.version>17</java-compiler.version>
27-
<maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version>
28-
<selenium.version>4.37.0</selenium.version>
27+
<maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version>
28+
<selenium.version>4.38.0</selenium.version>
2929
<testng.version>7.11.0</testng.version>
3030
<aspectjweaver.version>1.9.24</aspectjweaver.version>
3131
<ashot.version>1.5.4</ashot.version>
32-
<allure-testng.version>2.29.1</allure-testng.version>
33-
<allure-plugin-api.version>2.34.1</allure-plugin-api.version>
34-
<allure-maven.version>2.15.2</allure-maven.version>
32+
<allure-testng.version>2.30.0</allure-testng.version>
33+
<allure-plugin-api.version>2.35.1</allure-plugin-api.version>
34+
<allure-maven.version>2.16.1</allure-maven.version>
3535
<allure-environment-writer.version>1.0.0</allure-environment-writer.version>
3636
<allure.cmd.download.url>
3737
https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline
3838
</allure.cmd.download.url>
3939
<extentreports.version>5.1.2</extentreports.version>
4040
<apache-poi.version>5.4.1</apache-poi.version>
41-
<commons-io.version>2.19.0</commons-io.version>
41+
<commons-io.version>2.20.0</commons-io.version>
4242
<owner.version>1.0.12</owner.version>
4343
<assertj.version>4.0.0-M1</assertj.version>
44-
<datafaker.version>2.4.4</datafaker.version>
44+
<datafaker.version>2.5.3</datafaker.version>
4545
<monte-screen-recorder.version>0.7.7.0</monte-screen-recorder.version>
4646
<mysql-connector-java.version>8.0.33</mysql-connector-java.version>
47-
<lombok.version>1.18.38</lombok.version>
47+
<lombok.version>1.18.42</lombok.version>
4848
<javax.mail.version>1.6.2</javax.mail.version>
4949
<zip.version>1.17</zip.version>
50-
<java-telegram-bot-api.version>8.3.0</java-telegram-bot-api.version>
51-
<commons-lang3.version>3.18.0</commons-lang3.version>
52-
<mysql-connector-j.version>9.3.0</mysql-connector-j.version>
50+
<java-telegram-bot-api.version>9.2.0</java-telegram-bot-api.version>
51+
<commons-lang3.version>3.19.0</commons-lang3.version>
52+
<mysql-connector-j.version>9.4.0</mysql-connector-j.version>
5353
<json-path.version>2.9.0</json-path.version>
54-
<jackson.version>2.19.2</jackson.version>
54+
<jackson.version>2.20.0</jackson.version>
5555

5656
<!-- Suite XML path - CRM -->
5757
<suite.signin.simple>src/test/resources/suites/SignIn-simple.xml</suite.signin.simple>
@@ -124,13 +124,13 @@
124124
<dependency>
125125
<groupId>org.apache.logging.log4j</groupId>
126126
<artifactId>log4j-api</artifactId>
127-
<version>2.24.3</version>
127+
<version>2.25.2</version>
128128
</dependency>
129129
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
130130
<dependency>
131131
<groupId>org.apache.logging.log4j</groupId>
132132
<artifactId>log4j-core</artifactId>
133-
<version>2.24.3</version>
133+
<version>2.25.2</version>
134134
</dependency>
135135

136136
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
@@ -205,7 +205,7 @@
205205
<dependency>
206206
<groupId>org.apache.maven.plugins</groupId>
207207
<artifactId>maven-compiler-plugin</artifactId>
208-
<version>3.14.0</version>
208+
<version>3.14.1</version>
209209
<type>maven-plugin</type>
210210
</dependency>
211211

@@ -432,7 +432,7 @@
432432
<plugin>
433433
<groupId>org.apache.maven.plugins</groupId>
434434
<artifactId>maven-compiler-plugin</artifactId>
435-
<version>3.13.0</version>
435+
<version>3.14.1</version>
436436
<configuration>
437437
<source>${java-compiler.version}</source>
438438
<target>${java-compiler.version}</target>
@@ -463,9 +463,9 @@
463463
<artifactId>allure-maven</artifactId>
464464
<version>${allure-maven.version}</version>
465465
<configuration>
466-
<reportVersion>2.34.0</reportVersion>
466+
<reportVersion>2.35.1</reportVersion>
467467
<allureDownloadUrl>
468-
${allure.cmd.download.url}/2.34.0/allure-commandline-2.34.0.zip
468+
${allure.cmd.download.url}/2.35.1/allure-commandline-2.35.1.zip
469469
</allureDownloadUrl>
470470
</configuration>
471471
</plugin>

src/main/java/com/anhtester/driver/BrowserFactory.java

Lines changed: 119 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -25,125 +25,123 @@
2525

2626
public enum BrowserFactory {
2727

28-
CHROME {
29-
@Override
30-
public WebDriver createDriver() {
31-
//WebDriverManager.getInstance(DriverManagerType.CHROME).setup();
32-
33-
return new ChromeDriver(getOptions());
34-
}
35-
36-
@Override
37-
public ChromeOptions getOptions() {
38-
ChromeOptions options = new ChromeOptions();
39-
40-
Map<String, Object> prefs = new HashMap<String, Object>();
41-
prefs.put("profile.default_content_setting_values.notifications", 2);
42-
prefs.put("profile.password_manager_leak_detection", false); // Turn off change your password
43-
prefs.put("credentials_enable_service", false);
44-
prefs.put("profile.password_manager_enabled", false);
45-
prefs.put("autofill.profile_enabled", false); //Turn off Save Address popup
46-
options.setExperimentalOption("prefs", prefs);
47-
48-
options.addArguments("--disable-extensions");
49-
options.addArguments("--disable-infobars");
50-
options.addArguments("--disable-notifications");
51-
options.addArguments("--remote-allow-origins=*");
52-
53-
options.setAcceptInsecureCerts(true);
54-
55-
if (Boolean.valueOf(FrameworkConstants.HEADLESS) == true) {
56-
options.addArguments("--headless=new");
57-
options.addArguments("--disable-gpu");
58-
options.addArguments("--no-sandbox");
59-
options.addArguments("--disable-dev-shm-usage");
60-
options.addArguments("--window-size=1550,900");
61-
}
62-
63-
return options;
64-
}
65-
}, EDGE {
66-
@Override
67-
public WebDriver createDriver() {
68-
//WebDriverManager.getInstance(DriverManagerType.EDGE).setup();
69-
70-
return new EdgeDriver(getOptions());
71-
}
72-
73-
@Override
74-
public EdgeOptions getOptions() {
75-
EdgeOptions options = new EdgeOptions();
76-
77-
Map<String, Object> prefs = new HashMap<String, Object>();
78-
prefs.put("profile.default_content_setting_values.notifications", 2);
79-
prefs.put("profile.password_manager_leak_detection", false); // Turn off change your password
80-
prefs.put("credentials_enable_service", false);
81-
prefs.put("profile.password_manager_enabled", false);
82-
prefs.put("autofill.profile_enabled", false);
83-
options.setExperimentalOption("prefs", prefs);
84-
85-
options.addArguments("--disable-extensions");
86-
options.addArguments("--disable-infobars");
87-
options.addArguments("--disable-notifications");
88-
options.addArguments("--remote-allow-origins=*");
89-
90-
options.setAcceptInsecureCerts(true);
91-
92-
if (Boolean.valueOf(FrameworkConstants.HEADLESS) == true) {
93-
options.addArguments("--headless=new");
94-
options.addArguments("--disable-gpu");
95-
options.addArguments("--no-sandbox");
96-
options.addArguments("--disable-dev-shm-usage");
97-
options.addArguments("--window-size=1550,900");
98-
}
99-
100-
return options;
101-
}
102-
}, FIREFOX {
103-
@Override
104-
public WebDriver createDriver() {
105-
//WebDriverManager.getInstance(DriverManagerType.FIREFOX).setup();
106-
107-
return new FirefoxDriver(getOptions());
108-
}
109-
110-
@Override
111-
public FirefoxOptions getOptions() {
112-
FirefoxOptions options = new FirefoxOptions();
113-
114-
options.setAcceptInsecureCerts(true);
115-
116-
if (Boolean.valueOf(FrameworkConstants.HEADLESS) == true) {
117-
options.addArguments("-headless");
118-
options.addArguments("--width=1550");
119-
options.addArguments("--height=900");
120-
}
121-
122-
return options;
123-
}
124-
}, SAFARI {
125-
@Override
126-
public WebDriver createDriver() {
127-
//WebDriverManager.getInstance(DriverManagerType.SAFARI).setup();
128-
129-
return new SafariDriver(getOptions());
130-
}
131-
132-
@Override
133-
public SafariOptions getOptions() {
134-
SafariOptions options = new SafariOptions();
135-
options.setAutomaticInspection(false);
136-
137-
if (TRUE.equals(Boolean.valueOf(FrameworkConstants.HEADLESS)))
138-
throw new HeadlessNotSupportedException(options.getBrowserName());
139-
140-
return options;
141-
}
142-
};
143-
144-
private static final String START_MAXIMIZED = "--start-maximized";
145-
146-
public abstract WebDriver createDriver();
147-
148-
public abstract MutableCapabilities getOptions();
28+
CHROME {
29+
@Override
30+
public WebDriver createDriver() {
31+
return new ChromeDriver(getOptions());
32+
}
33+
34+
@Override
35+
public ChromeOptions getOptions() {
36+
ChromeOptions options = new ChromeOptions();
37+
38+
Map<String, Object> prefs = new HashMap<String, Object>();
39+
prefs.put("profile.default_content_setting_values.notifications", 2);
40+
prefs.put("profile.password_manager_leak_detection", false); // Turn off change your password
41+
prefs.put("credentials_enable_service", false);
42+
prefs.put("profile.password_manager_enabled", false);
43+
prefs.put("autofill.profile_enabled", false); //Turn off Save Address popup
44+
options.setExperimentalOption("prefs", prefs);
45+
46+
options.addArguments("--disable-extensions");
47+
options.addArguments("--disable-infobars");
48+
options.addArguments("--disable-notifications");
49+
options.addArguments("--remote-allow-origins=*");
50+
51+
options.setAcceptInsecureCerts(true);
52+
53+
if (Boolean.valueOf(FrameworkConstants.HEADLESS) == true) {
54+
options.addArguments("--headless=new");
55+
options.addArguments("--no-sandbox");
56+
options.addArguments("--disable-dev-shm-usage");
57+
options.addArguments("--window-size=1920,1080");
58+
options.addArguments("--high-dpi-support=1");
59+
options.addArguments("--force-device-scale-factor=1");
60+
} else {
61+
options.addArguments(START_MAXIMIZED);
62+
}
63+
64+
return options;
65+
}
66+
}, EDGE {
67+
@Override
68+
public WebDriver createDriver() {
69+
return new EdgeDriver(getOptions());
70+
}
71+
72+
@Override
73+
public EdgeOptions getOptions() {
74+
EdgeOptions options = new EdgeOptions();
75+
76+
Map<String, Object> prefs = new HashMap<String, Object>();
77+
prefs.put("profile.default_content_setting_values.notifications", 2);
78+
prefs.put("profile.password_manager_leak_detection", false); // Turn off change your password
79+
prefs.put("credentials_enable_service", false);
80+
prefs.put("profile.password_manager_enabled", false);
81+
prefs.put("autofill.profile_enabled", false);
82+
options.setExperimentalOption("prefs", prefs);
83+
84+
options.addArguments("--disable-extensions");
85+
options.addArguments("--disable-infobars");
86+
options.addArguments("--disable-notifications");
87+
options.addArguments("--remote-allow-origins=*");
88+
89+
options.setAcceptInsecureCerts(true);
90+
91+
if (Boolean.valueOf(FrameworkConstants.HEADLESS) == true) {
92+
options.addArguments("--headless=new");
93+
options.addArguments("--no-sandbox");
94+
options.addArguments("--disable-dev-shm-usage");
95+
options.addArguments("--window-size=1920,1080");
96+
options.addArguments("--high-dpi-support=1");
97+
options.addArguments("--force-device-scale-factor=1");
98+
} else {
99+
options.addArguments(START_MAXIMIZED);
100+
}
101+
102+
return options;
103+
}
104+
}, FIREFOX {
105+
@Override
106+
public WebDriver createDriver() {
107+
return new FirefoxDriver(getOptions());
108+
}
109+
110+
@Override
111+
public FirefoxOptions getOptions() {
112+
FirefoxOptions options = new FirefoxOptions();
113+
114+
options.setAcceptInsecureCerts(true);
115+
116+
if (Boolean.valueOf(FrameworkConstants.HEADLESS) == true) {
117+
options.addArguments("-headless");
118+
options.addArguments("--width=1920");
119+
options.addArguments("--height=1080");
120+
}
121+
122+
return options;
123+
}
124+
}, SAFARI {
125+
@Override
126+
public WebDriver createDriver() {
127+
return new SafariDriver(getOptions());
128+
}
129+
130+
@Override
131+
public SafariOptions getOptions() {
132+
SafariOptions options = new SafariOptions();
133+
options.setAutomaticInspection(false);
134+
135+
if (TRUE.equals(Boolean.valueOf(FrameworkConstants.HEADLESS)))
136+
throw new HeadlessNotSupportedException(options.getBrowserName());
137+
138+
return options;
139+
}
140+
};
141+
142+
private static final String START_MAXIMIZED = "--start-maximized";
143+
144+
public abstract WebDriver createDriver();
145+
146+
public abstract MutableCapabilities getOptions();
149147
}

0 commit comments

Comments
 (0)