From f22173980f3574ecb1d71a0872dcf206854a9527 Mon Sep 17 00:00:00 2001
From: rbourga <32535546+rbourga@users.noreply.github.com>
Date: Tue, 14 Feb 2023 16:40:26 +0800
Subject: [PATCH] Update to Selenium 4.8.0 (#26)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Upgrade of dependencies.
Removal of deprecated Phantomjs.
Removal of deprecated code.
Addition of "SuppressWarnings" tags where needed. To de resolved at a later stage.
* Adding IE capabilities for RemoteWebDriver.
* Upgrade of function call.
* Addition of field in the UI to set the path to the Firefox Gecko driver.
* Wiki update.
* Addition of input field for msegde.exe
* Clean-ups and finalisations.
* Addition of IE11 in MsEdge for Remote execution.
* Integrating changes from Shinu on Aug 26, 2019.
* Merging of thefuckingcode changes from Apr 17, 2021.
* Setting of default value of path to msedge.exe
* Update of Chrome tests to JDK 17.
* Update of Firefox tests to JDK 17.
* Upgrade of HTMLUntit tests to JDK 17.
* Update of InternetExplorer tests to JDK 17.
* Update of RemoteDriver tests to JDK 17.
* Update of WebDriver tests to JDK 17.
* Formatting fixes.
* Formatting fixes 2.
* Formatting fixes #3.
* Addition of Geckodriver v0.31 for Firefox tests.
* Usage of GeckoDriver default service for unit tests instead of real Geckodriver.exe.
* Update to Selenium 4.5
* Ui fix.
* Addition of geckodriver to travis CI for the firefox tests
* Matching Continous Integration test conditions.
* Setting IE's Protected Mode to "off" to allow IE to start in all environments.
* Removaĺ of path to Edge as from IEDriver v4.5.0, the driver will
automatically locate Edge on the system.
* Ui Refactor 1
* Update to Seleniuṁ 4.6.0
* UI Refactor
* Adding of new wiki page for direct browseŕ testing.
* Updating wiki pages for new UI.
* Tests update 1.
* Update of Chrome and IE tests.
* Pom update.
* Imporţclean-ups.
* Update of Readme.md.
* Fix of broken wiki links.
* Fix of broken link #2.
* Take #3
* Code format
* Code format #2
* Syntax highlight.
* Initial Browser URL now in UI and not hard coded.
* Test fixes.
* Upgrade to Selenium 4.7.2 and addition of driver for Edge.
* Update of tests.
* Removing "ignoring zoom levels" in IE as it is no longer required from Seleniuṁ 4.7.0.
* Upgrade to Selenium 4.8.0
---
.travis.yml | 6 ++---
pom.xml | 4 ++--
.../webdriver/config/WebDriverConfig.java | 12 +++++++---
.../config/gui/WebDriverConfigGui.java | 23 ++++++++++++-------
.../config/ChromeDriverConfigTest.java | 2 +-
.../config/EdgeDriverConfigTest.java | 2 +-
.../config/RemoteDriverConfigTest.java | 2 +-
7 files changed, 32 insertions(+), 19 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index b6c53c7..d8f98f5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,11 +1,11 @@
sudo: false # to use new infrastructure
language: java
addons:
- firefox: "106.0.2"
+ firefox: "109.0.1"
before_install:
- - wget https://github.com/mozilla/geckodriver/releases/download/v0.32.0/geckodriver-v0.32.0-linux64.tar.gz
+ - wget https://github.com/mozilla/geckodriver/releases/download/v0.32.2/geckodriver-v0.32.2-linux64.tar.gz
- mkdir geckodriver
- - tar -xzf geckodriver-v0.32.0-linux64.tar.gz -C geckodriver
+ - tar -xzf geckodriver-v0.32.2-linux64.tar.gz -C geckodriver
- export PATH=$PATH:$PWD/geckodriver
install: "mvn -Dmaven.test.skip=true clean install --batch-mode"
script: "mvn -Djava.awt.headless=true -Dmaven.test.redirectTestOutputToFile=true --fail-at-end --batch-mode org.jacoco:jacoco-maven-plugin:prepare-agent test org.jacoco:jacoco-maven-plugin:report"
diff --git a/pom.xml b/pom.xml
index 0eb6c14..53c50de 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
kg.apc
jmeter-plugins-webdriver
- 4.7.2
+ 4.8.0
jar
WebDriver/Selenium
@@ -34,7 +34,7 @@
UTF-8
1.8
1.8
- 4.7.2
+ 4.8.0
diff --git a/src/main/java/com/googlecode/jmeter/plugins/webdriver/config/WebDriverConfig.java b/src/main/java/com/googlecode/jmeter/plugins/webdriver/config/WebDriverConfig.java
index 4f84f5f..a9da337 100644
--- a/src/main/java/com/googlecode/jmeter/plugins/webdriver/config/WebDriverConfig.java
+++ b/src/main/java/com/googlecode/jmeter/plugins/webdriver/config/WebDriverConfig.java
@@ -273,7 +273,9 @@ protected ChromeOptions createChromeOptions() {
if (isBrowserMaximized()) {
options.addArguments("--start-maximized");
}
- options.setHeadless(isHeadless());
+ if (isHeadless()) {
+ options.addArguments("--headless=new");
+ }
String additionalArgs = trimmed(getChromeAdditionalArgs());
if (null != additionalArgs && !additionalArgs.isEmpty()) {
@@ -300,7 +302,9 @@ protected EdgeOptions createEdgeOptions() {
if (isBrowserMaximized()) {
options.addArguments("--start-maximized");
}
- options.setHeadless(isHeadless());
+ if (isHeadless()) {
+ options.addArguments("--headless=new");
+ }
String additionalArgs = trimmed(getEdgeAdditionalArgs());
if (null != additionalArgs && !additionalArgs.isEmpty()) {
@@ -323,7 +327,9 @@ protected FirefoxOptions createFirefoxOptions() {
FirefoxOptions options = new FirefoxOptions();
// Custom Firefox capabilities
- options.setHeadless(isHeadless());
+ if (isHeadless()) {
+ options.addArguments("--headless");
+ }
options.setProfile(createProfile());
// Capabilities shared by all browsers
diff --git a/src/main/java/com/googlecode/jmeter/plugins/webdriver/config/gui/WebDriverConfigGui.java b/src/main/java/com/googlecode/jmeter/plugins/webdriver/config/gui/WebDriverConfigGui.java
index 8153a0b..439f2b5 100644
--- a/src/main/java/com/googlecode/jmeter/plugins/webdriver/config/gui/WebDriverConfigGui.java
+++ b/src/main/java/com/googlecode/jmeter/plugins/webdriver/config/gui/WebDriverConfigGui.java
@@ -210,11 +210,12 @@ protected JPanel createMainPanel() {
panel.add(acceptInsecureCerts);
if (!(browserName().equals("HtmlUnit"))) {
- headless = new JCheckBox("Headless");
- headless.setSelected(false);
- headless.setEnabled(true);
- panel.add(headless);
-
+ if (!(browserName().equals("internet explorer"))) {
+ headless = new JCheckBox("Headless");
+ headless.setSelected(false);
+ headless.setEnabled(true);
+ panel.add(headless);
+ }
maximizeBrowser = new JCheckBox("Maximize browser window");
maximizeBrowser.setSelected(true);
panel.add(maximizeBrowser);
@@ -486,8 +487,10 @@ public void clearGui() {
}
if (!(browserName().equals("HtmlUnit"))) {
+ if (!(browserName().equals("internet explorer"))) {
+ headless.setSelected(false);
+ }
maximizeBrowser.setSelected(true);
- headless.setSelected(false);
}
if ((browserName().equals("chrome")) || (browserName().equals("Remote"))) {
@@ -552,7 +555,9 @@ public void configure(TestElement element) {
}
if (!(browserName().equals("HtmlUnit"))) {
- headless.setSelected(webDriverConfig.isHeadless());
+ if (!(browserName().equals("internet explorer"))) {
+ headless.setSelected(webDriverConfig.isHeadless());
+ }
maximizeBrowser.setSelected(webDriverConfig.isBrowserMaximized());
}
@@ -644,8 +649,10 @@ public void modifyTestElement(TestElement element) {
}
if (!(browserName().equals("HtmlUnit"))) {
+ if (!(browserName().equals("internet explorer"))) {
+ webDriverConfig.setHeadless(headless.isSelected());
+ }
webDriverConfig.setBrowserMaximized(maximizeBrowser.isSelected());
- webDriverConfig.setHeadless(headless.isSelected());
}
// Chrome elements
diff --git a/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/ChromeDriverConfigTest.java b/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/ChromeDriverConfigTest.java
index b81c276..2282d84 100644
--- a/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/ChromeDriverConfigTest.java
+++ b/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/ChromeDriverConfigTest.java
@@ -172,7 +172,7 @@ public void shouldHaveChromeOptionsWhenRemoteIsEnabled() {
List args = (List) capability.get("args");
assertThat(args, is(notNullValue()));
assertEquals(1, args.size());
- assertEquals("--headless", args.get(0));
+ assertEquals("--headless=new", args.get(0));
}
@Test
diff --git a/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/EdgeDriverConfigTest.java b/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/EdgeDriverConfigTest.java
index e44c3e0..9e64a23 100644
--- a/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/EdgeDriverConfigTest.java
+++ b/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/EdgeDriverConfigTest.java
@@ -172,7 +172,7 @@ public void shouldHaveEdgeOptionsWhenRemoteIsEnabled() {
List args = (List) capability.get("args");
assertThat(args, is(notNullValue()));
assertEquals(1, args.size());
- assertEquals("--headless", args.get(0));
+ assertEquals("--headless=new", args.get(0));
}
@Test
diff --git a/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/RemoteDriverConfigTest.java b/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/RemoteDriverConfigTest.java
index 3668676..62d2616 100644
--- a/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/RemoteDriverConfigTest.java
+++ b/src/test/java/com/googlecode/jmeter/plugins/webdriver/config/RemoteDriverConfigTest.java
@@ -116,7 +116,7 @@ public void shouldHaveHeadlessInChromeOptionsWhenEnabled() {
List args = (List) capability.get("args");
assertThat(args, is(notNullValue()));
assertEquals(1, args.size());
- assertEquals("--headless", args.get(0));
+ assertEquals("--headless=new", args.get(0));
}
@Test