diff --git a/.travis.yml b/.travis.yml
index 4e5ec37..4f23414 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,8 +8,6 @@ env:
- PROFILE=build,firefox
- PROFILE=build,googlechromeheadless
- PROFILE=build,firefoxheadless
- - PROFILE=build,phantomjs
- - PROFILE=build,htmlunitwithjs
stages:
- test
diff --git a/README.md b/README.md
index 6b584f8..714edf3 100644
--- a/README.md
+++ b/README.md
@@ -45,24 +45,25 @@ your pom.xml:
com.github.hi-fi
robotframework-seleniumlibrary
- 3.14.0.0
+ 3.141.59.2
test
If you cannot use the robotframework-maven-plugin you can use the
-[jar-with-dependencies](http://central.maven.org/maven2/com/github/hi-fi/robotframework-seleniumlibrary/3.14.0.0/robotframework-seleniumlibrary-3.14.0.0-jar-with-dependencies.jar),
-which contains all required libraries.
+[jar-with-dependencies](http://central.maven.org/maven2/com/github/hi-fi/robotframework-seleniumlibrary/3.141.59.2/robotframework-seleniumlibrary-3.141.59.2-jar-with-dependencies.jar),
+which contains all required libraries. Running of tests with this can be done with command `java -jar robotframework-seleniumlibrary-3.141.59.2-jar-with-dependencies.jar `.
* More information about this library can be found in the
- [Keyword Documentation](http://central.maven.org/maven2/com/github/hi-fi/robotframework-seleniumlibrary/3.14.0.0/robotframework-seleniumlibrary-3.14.0.0.html).
+ [Keyword Documentation](http://central.maven.org/maven2/com/github/hi-fi/robotframework-seleniumlibrary/3.141.59.2/robotframework-seleniumlibrary-3.141.59.2.html).
* For keyword completion in RIDE you can download this
- [Library Specs](http://central.maven.org/maven2/com/github/hi-fi/robotframework-seleniumlibrary/3.14.0.0/robotframework-seleniumlibrary-3.14.0.0.xml)
+ [Library Specs](http://central.maven.org/maven2/com/github/hi-fi/robotframework-seleniumlibrary/3.141.59.2/robotframework-seleniumlibrary-3.141.59.2.xml)
and place it in your PYTHONPATH.
Differences
-----------
* Some keyword differences between this and [Python version](https://github.com/robotframework/SeleniumLibrary) exists. (Same) keywords should be aligned in upcoming versions.
+* Older version of the library was imported as `Library Selenium2Library` (both Java and Python versions). Since 2.53.1.1 (and all 3.x versions) import is done as `Library SeleniumLibrary`
Browser drivers
diff --git a/pom.xml b/pom.xml
index 5e2c821..508dcdc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,10 +1,11 @@
-
4.0.0
com.github.hi-fi
robotframework-seleniumlibrary
- 3.14.0.1-SNAPSHOT
+ 3.141.59.26-SNAPSHOT
jar
Robot Framework :: SeleniumLibrary
@@ -67,10 +68,10 @@
true
true
1.9.1
- 1.7
- 3.0.4
- 1.4.7
- 3.14.0
+ 1.8
+ 1.5.1
+ 3.1.1
+ 3.141.59
SeleniumLibrary
jbrowser
@@ -81,16 +82,16 @@
javalib-core
1.2.1
-
- org.seleniumhq.selenium
- selenium-server
- ${selenium.version}
-
org.robotframework
robotframework
${robotframework.version}
+
+ org.seleniumhq.selenium
+ selenium-server
+ ${selenium.version}
+
org.aspectj
aspectjrt
@@ -115,46 +116,17 @@
io.appium
java-client
- 5.0.4
-
-
- org.seleniumhq.selenium
- selenium-java
-
-
- org.seleniumhq.selenium
- selenium-support
-
-
- org.seleniumhq.selenium
- selenium-api
-
-
+ 7.0.0
org.apache.commons
commons-exec
1.3
-
- com.codeborne
- phantomjsdriver
- 1.4.4
-
-
- org.seleniumhq.selenium
- selenium-api
-
-
- org.seleniumhq.selenium
- selenium-remote-driver
-
-
-
com.machinepublishers
jbrowserdriver
- 1.0.0
+ 1.0.1
org.mockito
@@ -380,6 +352,12 @@
maven-assembly-plugin
2.6
+
+
+ true
+ org.robotframework.RobotFramework
+
+
jar-with-dependencies
@@ -412,45 +390,20 @@
org.robotframework
robotframework-maven-plugin
-
-
- -Dwebdriver.gecko.driver=${webdriver.gecko.driver}
-
-
+
+
+ -Dwebdriver.gecko.driver=${webdriver.gecko.driver}
+
+
-
- firefoxheadless
-
- firefoxheadless
-
-
-
-
- com.lazerycode.selenium
- driver-binary-downloader-maven-plugin
-
-
- org.robotframework
- robotframework-maven-plugin
-
-
-
- -Dwebdriver.gecko.driver=${webdriver.gecko.driver}
-
-
-
-
-
-
-
- phantomjs
+ firefoxheadless
- phantomjs
+ firefoxheadless
@@ -461,13 +414,13 @@
org.robotframework
robotframework-maven-plugin
-
-
-
- -Dphantomjs.binary.path=${phantomjs.binary.path}
-
-
-
+
+
+
+ -Dwebdriver.gecko.driver=${webdriver.gecko.driver}
+
+
+
@@ -486,52 +439,38 @@
org.robotframework
robotframework-maven-plugin
-
-
-
- -Dwebdriver.chrome.driver=${webdriver.chrome.driver}
-
-
-
+
+
+
+ -Dwebdriver.chrome.driver=${webdriver.chrome.driver}
+
+
+
- googlechromeheadless
-
- googlechromeheadless
-
-
-
-
- com.lazerycode.selenium
- driver-binary-downloader-maven-plugin
-
-
- org.robotframework
- robotframework-maven-plugin
-
-
-
- -Dwebdriver.chrome.driver=${webdriver.chrome.driver}
-
-
-
-
-
-
-
-
- htmlunitwithjs
+ googlechromeheadless
- htmlunitwithjs
+ googlechromeheadless
+
+ com.lazerycode.selenium
+ driver-binary-downloader-maven-plugin
+
org.robotframework
robotframework-maven-plugin
+
+
+
+ -Dwebdriver.chrome.driver=${webdriver.chrome.driver}
+
+
+
diff --git a/src/main/java/com/github/markusbernhardt/seleniumlibrary/keywords/BrowserManagement.java b/src/main/java/com/github/markusbernhardt/seleniumlibrary/keywords/BrowserManagement.java
index 81528b9..de09911 100644
--- a/src/main/java/com/github/markusbernhardt/seleniumlibrary/keywords/BrowserManagement.java
+++ b/src/main/java/com/github/markusbernhardt/seleniumlibrary/keywords/BrowserManagement.java
@@ -10,10 +10,8 @@
import java.net.URL;
import java.net.UnknownHostException;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;
@@ -39,12 +37,10 @@
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.firefox.FirefoxProfile;
-import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.ie.InternetExplorerOptions;
import org.openqa.selenium.opera.OperaDriver;
import org.openqa.selenium.opera.OperaOptions;
-import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.remote.Augmenter;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.HttpCommandExecutor;
@@ -171,9 +167,6 @@ public void closeBrowser() {
"| Opera | opera |\r\n" +
"| Android | android |\r\n" +
"| Iphone | iphone |\r\n" +
- "| PhantomJS | phantomjs |\r\n" +
- "| HTMLUnit | htmlunit |\r\n" +
- "| HTMLUnit with Javascript | htmlunitwithjs |\r\n" +
"| JBrowser | jbrowser |\r\n" +
"\r\n" +
"To be able to actually use one of these browsers, you need to have a matching Selenium browser driver available. See the [https://github.com/Hi-Fi/robotframework-seleniumlibrary-java#browser-drivers|project documentation] for more details.\r\n" +
@@ -659,19 +652,8 @@ protected WebDriver createLocalWebDriver(String browserName, Capabilities desire
return new ChromeDriver((ChromeOptions)desiredCapabilities);
case "opera":
return new OperaDriver(new OperaOptions().merge(desiredCapabilities));
- case "phantomjs":
- logging.warn("Phantomjs going to be removed as it's development is suspended. Should move to some other browser" );
- return new PhantomJSDriver(desiredCapabilities);
case "safari":
return new SafariDriver(new SafariOptions().merge(desiredCapabilities));
- case "htmlunit":
- logging.warn("HTMLUnit-driver going to be removed from Selenium. Should move to some other browser" );
- return new HtmlUnitDriver(desiredCapabilities);
- case "htmlunitwithjs":
- logging.warn("HTMLUnit-driver going to be removed from Selenium. Should move to some other browser" );
- HtmlUnitDriver driver = new HtmlUnitDriver(desiredCapabilities);
- driver.setJavascriptEnabled(true);
- return driver;
case "jbrowser":
return new JBrowserDriver(Settings.builder().build());
case "android":
@@ -738,19 +720,9 @@ protected Capabilities createCapabilities(String browserName, String desiredCapa
case "opera":
desiredCapabilities = new OperaOptions();
break;
- case "phantomjs":
- logging.warn("Phantomjs going to be removed as it's development is suspended. Should move to some other browser" );
- desiredCapabilities = DesiredCapabilities.phantomjs();
- break;
case "safari":
desiredCapabilities = new SafariOptions();
break;
- case "htmlunit":
- case "htmlunitwithjs":
- logging.warn("HTMLUnit-driver going to be removed from Selenium. Should move to some other browser" );
- desiredCapabilities = DesiredCapabilities.htmlUnit();
- ((DesiredCapabilities) desiredCapabilities).setBrowserName("htmlunit");
- break;
case "jbrowser":
desiredCapabilities = new DesiredCapabilities("jbrowser", "1", Platform.ANY);
break;
@@ -786,20 +758,37 @@ protected void parseBrowserOptionsChrome(String browserOptions, Capabilities des
if (browserOptions != null && !"NONE".equalsIgnoreCase(browserOptions)) {
JSONObject jsonObject = (JSONObject) JSONValue.parse(browserOptions);
if (jsonObject != null) {
- List args = new ArrayList<>();
- for (Object arg : (JSONArray)jsonObject.get("args")) {
- args.add("--"+arg.toString().replace("--", ""));
- }
- ((ChromeOptions) desiredCapabilities).addArguments(args);
- List extensions = new ArrayList<>();
- for (Object extension : (JSONArray)jsonObject.get("extensions")) {
- extensions.add(new File(extension.toString().toString().replace('/', File.separatorChar)));
+ // Check all properties for translation to ChromeOptions
+ for (Iterator> iterator = jsonObject.keySet().iterator(); iterator.hasNext(); ) {
+ String key = (String)iterator.next();
+ switch (key) {
+ case "args": {
+ // args is a list of strings
+ List args = new ArrayList<>();
+ for (Object arg : (JSONArray)jsonObject.get(key)) {
+ args.add("--"+arg.toString().replace("--", ""));
+ }
+ ((ChromeOptions) desiredCapabilities).addArguments(args);
+ break;
+ }
+ case "extensions": {
+ List extensions = new ArrayList<>();
+ for (Object extension : (JSONArray)jsonObject.get(key)) {
+ extensions.add(new File(extension.toString().toString().replace('/', File.separatorChar)));
+ }
+ ((ChromeOptions) desiredCapabilities).addExtensions(extensions);
+ break;
+ }
+ case "disable-extensions":
+ // change casing
+ ((ChromeOptions) desiredCapabilities).setExperimentalOption("useAutomationExtension", false);
+ break;
+ default:
+ // all unknonw properties are passed as is
+ ((ChromeOptions) desiredCapabilities).setExperimentalOption(key, jsonObject.get(key));
+ break;
+ }
}
- ((ChromeOptions) desiredCapabilities).addExtensions(extensions);
- ((ChromeOptions) desiredCapabilities).setExperimentalOption("prefs", jsonObject.get("prefs"));
- if (browserOptions.contains("disable-extensions")) {
- ((ChromeOptions) desiredCapabilities).setExperimentalOption("useAutomationExtension", false);
- }
} else {
logging.warn("Invalid browserOptions: " + browserOptions);
}
diff --git a/src/test/java/com/github/markusbernhardt/seleniumlibrary/keywords/BrowserManagementTest.java b/src/test/java/com/github/markusbernhardt/seleniumlibrary/keywords/BrowserManagementTest.java
index b9f7e2a..7fbffe2 100644
--- a/src/test/java/com/github/markusbernhardt/seleniumlibrary/keywords/BrowserManagementTest.java
+++ b/src/test/java/com/github/markusbernhardt/seleniumlibrary/keywords/BrowserManagementTest.java
@@ -62,12 +62,6 @@ public void testCreateDesiredCapabilitiesWithOnlyBrowserOptions() {
assertTrue(profile.getStringPreference("network.proxy.http", "wrong") != "wrong");
}
- @Test
- public void testCreateDesiredCapabilitiesForHtmlUnit() {
- Capabilities dc = bm.createCapabilities("htmlunitwithjs", null, "");
- assertTrue(dc.getBrowserName().equals("htmlunit"));
- }
-
@Test
public void parseChromeBrowserOptions() {
ChromeOptions chromeOptions = new ChromeOptions();
diff --git a/src/test/robotframework/testsuites/UnitTests/AW3Schools.robot b/src/test/robotframework/testsuites/UnitTests/AW3Schools.robot
index 21bb4a2..01fd369 100644
--- a/src/test/robotframework/testsuites/UnitTests/AW3Schools.robot
+++ b/src/test/robotframework/testsuites/UnitTests/AW3Schools.robot
@@ -7,7 +7,7 @@ ${URL Application} http://www.w3schools.com
*** Test Cases ***
Select
- [Tags] phantomjs htmlunit htmlunitwithjs
+ [Tags] jbrowser
Open Browser https://developer.mozilla.org/en/docs/Web/HTML/Element/select#Examples ${browser} mainbrowser
Wait Until Page Contains Element xpath://select
Select From List xpath://select Third Value
diff --git a/src/test/robotframework/testsuites/UnitTests/ExtJS.robot b/src/test/robotframework/testsuites/UnitTests/ExtJS.robot
index 47a9712..dded819 100644
--- a/src/test/robotframework/testsuites/UnitTests/ExtJS.robot
+++ b/src/test/robotframework/testsuites/UnitTests/ExtJS.robot
@@ -2,7 +2,7 @@
Suite Setup Open Page
Suite Teardown Close Browser
Resource ../../settings/Settings.robot
-Default Tags phantomjs htmlunit htmlunitwithjs
+Default Tags jbrowser
*** Variables ***
${URL Application} http://examples.sencha.com/extjs/6.5.0/examples/classic/ticket-app/index.html
@@ -21,7 +21,7 @@ Open Page
*** Test Cases ***
Buy Ticket
- Run Keyword Unless "${browser}"=="phantomjs" Select Frame examples-iframe
+ Select Frame examples-iframe
Wait Until Page Contains Element ${inputfield password} 10
Input Text ${inputfield password} password
Capture Page Screenshot images${/}screenshot1.png
diff --git a/src/test/robotframework/testsuites/UnitTests/GetInnerElementId.txt b/src/test/robotframework/testsuites/UnitTests/GetInnerElementId.robot
similarity index 93%
rename from src/test/robotframework/testsuites/UnitTests/GetInnerElementId.txt
rename to src/test/robotframework/testsuites/UnitTests/GetInnerElementId.robot
index f1126ad..64eb575 100644
--- a/src/test/robotframework/testsuites/UnitTests/GetInnerElementId.txt
+++ b/src/test/robotframework/testsuites/UnitTests/GetInnerElementId.robot
@@ -1,6 +1,6 @@
*** Settings ***
Resource ../../settings/Settings.robot
-Default Tags phantomjs
+Default Tags jbrowser
*** Test Cases ***
Get Inner Element Id test
diff --git a/src/test/robotframework/testsuites/UnitTests/Google.robot b/src/test/robotframework/testsuites/UnitTests/Google.robot
index 5d5c831..856b9cc 100644
--- a/src/test/robotframework/testsuites/UnitTests/Google.robot
+++ b/src/test/robotframework/testsuites/UnitTests/Google.robot
@@ -4,9 +4,8 @@ Suite Teardown Google.Site.Close
Test Setup Google.Site.Init
Resource ../../settings/Settings.robot
Resource ../../imports/Google.txt
-Default Tags phantomjs htmlunit htmlunitwithjs
-*** Testcases ***
+*** Test cases ***
Open And Close Google Site
Capture Page Screenshot
diff --git a/src/test/robotframework/testsuites/UnitTests/JSEvents.robot b/src/test/robotframework/testsuites/UnitTests/JSEvents.robot
index 5201f71..bb10493 100644
--- a/src/test/robotframework/testsuites/UnitTests/JSEvents.robot
+++ b/src/test/robotframework/testsuites/UnitTests/JSEvents.robot
@@ -2,7 +2,6 @@
Suite Setup Open Page
Suite Teardown Close All Browsers
Resource ../../settings/Settings.robot
-Default Tags htmlunit htmlunitwithjs
*** Variables ***
${URL Application} http://fiddle.jshell.net/ShPVX/show/
diff --git a/src/test/robotframework/testsuites/UnitTests/WhatAreCookies.robot b/src/test/robotframework/testsuites/UnitTests/WhatAreCookies.robot
index 8f8af3d..b589265 100644
--- a/src/test/robotframework/testsuites/UnitTests/WhatAreCookies.robot
+++ b/src/test/robotframework/testsuites/UnitTests/WhatAreCookies.robot
@@ -1,6 +1,5 @@
*** Settings ***
Resource ../../settings/Settings.robot
-Default Tags htmlunit htmlunitwithjs
*** Test Cases ***
Cookies