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