Skip to content
This repository was archived by the owner on Feb 2, 2025. It is now read-only.

Commit f37e637

Browse files
committed
Bumbed up Selenium version
Some deprecation fixes
1 parent 0986002 commit f37e637

File tree

2 files changed

+63
-69
lines changed

2 files changed

+63
-69
lines changed

pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.github.hi-fi</groupId>
66
<artifactId>robotframework-seleniumlibrary</artifactId>
7-
<version>2.53.1.2-SNAPSHOT</version>
7+
<version>3.6.0.0-SNAPSHOT</version>
88
<packaging>jar</packaging>
99

1010
<name>Robot Framework :: SeleniumLibrary</name>
@@ -66,12 +66,12 @@
6666
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
6767
<downloadSources>true</downloadSources>
6868
<downloadJavadocs>true</downloadJavadocs>
69-
<aspectj.version>1.8.10</aspectj.version>
69+
<aspectj.version>1.8.11</aspectj.version>
7070
<java.version>1.6</java.version>
7171
<xml.doclet.version>1.0.5</xml.doclet.version>
7272
<robotframework.version>3.0.2</robotframework.version>
7373
<robotframework.maven.plugin.version>1.4.7</robotframework.maven.plugin.version>
74-
<selenium.version>2.53.1</selenium.version>
74+
<selenium.version>3.6.0</selenium.version>
7575
<keywords.class>SeleniumLibrary</keywords.class>
7676
</properties>
7777

@@ -99,7 +99,7 @@
9999
<dependency>
100100
<groupId>com.codeborne</groupId>
101101
<artifactId>phantomjsdriver</artifactId>
102-
<version>1.3.0</version>
102+
<version>1.4.3</version>
103103
</dependency>
104104
<dependency>
105105
<groupId>org.robotframework</groupId>
@@ -124,7 +124,7 @@
124124
<dependency>
125125
<groupId>io.appium</groupId>
126126
<artifactId>java-client</artifactId>
127-
<version>4.1.2</version>
127+
<version>5.0.4</version>
128128
</dependency>
129129
<dependency>
130130
<groupId>org.apache.commons</groupId>

src/main/java/com/github/markusbernhardt/seleniumlibrary/keywords/BrowserManagement.java

Lines changed: 58 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,12 @@
2020
import org.apache.http.auth.AuthScope;
2121
import org.apache.http.auth.NTCredentials;
2222
import org.apache.http.auth.UsernamePasswordCredentials;
23-
import org.apache.http.conn.params.ConnRoutePNames;
24-
import org.apache.http.impl.client.DefaultHttpClient;
25-
import org.apache.http.impl.conn.DefaultHttpRoutePlanner;
23+
import org.apache.http.client.config.RequestConfig;
2624
import org.json.simple.JSONArray;
2725
import org.json.simple.JSONObject;
2826
import org.json.simple.JSONValue;
2927
import org.openqa.selenium.Dimension;
28+
import org.openqa.selenium.MutableCapabilities;
3029
import org.openqa.selenium.Platform;
3130
import org.openqa.selenium.WebDriver;
3231
import org.openqa.selenium.WebElement;
@@ -37,7 +36,6 @@
3736
import org.openqa.selenium.ie.InternetExplorerDriver;
3837
import org.openqa.selenium.phantomjs.PhantomJSDriver;
3938
import org.openqa.selenium.remote.Augmenter;
40-
import org.openqa.selenium.remote.DesiredCapabilities;
4139
import org.openqa.selenium.remote.HttpCommandExecutor;
4240
import org.openqa.selenium.remote.RemoteWebDriver;
4341
import org.openqa.selenium.safari.SafariDriver;
@@ -212,8 +210,8 @@ public String openBrowser(String url, String browserName, String alias, String r
212210
}
213211

214212
public String openBrowser(String url, String browserName, String alias, String remoteUrl,
215-
String desiredCapabilities) throws Throwable {
216-
return openBrowser(url, browserName, alias, remoteUrl, desiredCapabilities, null);
213+
String mutableCapabilities) throws Throwable {
214+
return openBrowser(url, browserName, alias, remoteUrl, mutableCapabilities, null);
217215
}
218216

219217
/**
@@ -287,19 +285,19 @@ public String openBrowser(String url, String browserName, String alias, String r
287285
* later to switch back to it. Index starts from 1 and is reset back to it
288286
* when the `Close All Browsers` keyword is used.<br>
289287
* <br>
290-
* <b>DesiredCapabilities</b><br>
291-
* The DesiredCapabilities can be specified in a simple key:value format or
288+
* <b>mutableCapabilities</b><br>
289+
* The mutableCapabilities can be specified in a simple key:value format or
292290
* as a JSON object. With the JSON format more complex parameters, like the
293291
* proxy, can be configured.<br>
294292
* <br>
295-
* Example of desiredCapabilities as simple string:<br>
293+
* Example of mutableCapabilities as simple string:<br>
296294
* <table border="1" cellspacing="0" summary="">
297295
* <tr>
298296
* <td>platform:Windows 8,browserName:firefox,version:25</td>
299297
* </tr>
300298
* </table>
301299
* <br>
302-
* Example of desiredCapabilities as JSON object:<br>
300+
* Example of mutableCapabilities as JSON object:<br>
303301
* <table border="1" cellspacing="0" summary="">
304302
* <tr>
305303
* <td>{<br>
@@ -361,15 +359,15 @@ public String openBrowser(String url, String browserName, String alias, String r
361359
* Default=False. Optional remote grid URL. When specified no
362360
* local WebDriver instance is created, but a network connection
363361
* to a Selenium 2 WebDriver Grid Hub at the given URL is opened.
364-
* @param desiredCapabilities
362+
* @param mutableCapabilities
365363
* Default=NONE. Optional desired capabilities of the newly
366364
* created remote browser instances can be specified in a simple
367365
* key1:val1,key2:val2 format or as a JSON object (see examples
368366
* above). Used to communicate to the remote grid, which kind of
369367
* browser, etc. should be used. For more information see:
370368
* <a href=
371-
* "http://code.google.com/p/selenium/wiki/DesiredCapabilities" >
372-
* DesiredCapabilities</a>
369+
* "http://code.google.com/p/selenium/wiki/mutableCapabilities" >
370+
* mutableCapabilities</a>
373371
* @param browserOptions
374372
* Default=NONE. Extended browser options as JSON structure.
375373
* @return The index of the newly created browser instance.
@@ -381,10 +379,10 @@ public String openBrowser(String url, String browserName, String alias, String r
381379
* @see BrowserManagement#switchBrowser
382380
*/
383381
@RobotKeyword
384-
@ArgumentNames({ "url", "browserName=firefox", "alias=NONE", "remoteUrl=False", "desiredCapabilities=NONE",
382+
@ArgumentNames({ "url", "browserName=firefox", "alias=NONE", "remoteUrl=False", "mutableCapabilities=NONE",
385383
"browserOptions=NONE" })
386384
public String openBrowser(String url, String browserName, String alias, String remoteUrl,
387-
String desiredCapabilities, String browserOptions) throws Throwable {
385+
String mutableCapabilities, String browserOptions) throws Throwable {
388386
try {
389387
logging.info("browserName: " + browserName);
390388
if (remoteUrl != null) {
@@ -394,7 +392,7 @@ public String openBrowser(String url, String browserName, String alias, String r
394392
logging.info(String.format("Opening browser '%s' to base url '%s'", browserName, url));
395393
}
396394

397-
WebDriver webDriver = createWebDriver(browserName, desiredCapabilities, remoteUrl, browserOptions);
395+
WebDriver webDriver = createWebDriver(browserName, mutableCapabilities, remoteUrl, browserOptions);
398396
webDriver.get(url);
399397
String sessionId = webDriverCache.register(webDriver, alias);
400398
logging.debug(String.format("Opened browser with session id %s", sessionId));
@@ -804,8 +802,8 @@ public String getTitle() {
804802
* is requested in the desired capabilities, no error is thrown;</b> a
805803
* read-only capabilities object is returned that indicates the capabilities
806804
* the session actually supports. For more information see:
807-
* <a href= "http://code.google.com/p/selenium/wiki/DesiredCapabilities" >
808-
* DesiredCapabilities</a><br>
805+
* <a href= "http://code.google.com/p/selenium/wiki/mutableCapabilities" >
806+
* mutableCapabilities</a><br>
809807
*
810808
* @return The capabilities of the remote node.
811809
*
@@ -1359,17 +1357,17 @@ protected String getPasswordFromURL(URL url) {
13591357
return auth.substring(index + 1);
13601358
}
13611359

1362-
protected WebDriver createWebDriver(String browserName, String desiredCapabilitiesString, String remoteUrlString,
1360+
protected WebDriver createWebDriver(String browserName, String mutableCapabilitiesString, String remoteUrlString,
13631361
String browserOptions) throws MalformedURLException {
13641362
browserName = browserName.toLowerCase().replace(" ", "");
1365-
DesiredCapabilities desiredCapabilities = createDesiredCapabilities(browserName, desiredCapabilitiesString,
1363+
MutableCapabilities mutableCapabilities = createmutableCapabilities(browserName, mutableCapabilitiesString,
13661364
browserOptions);
13671365

13681366
WebDriver webDriver;
13691367
if (remoteUrlString != null && !"False".equals(remoteUrlString)) {
1370-
webDriver = createRemoteWebDriver(desiredCapabilities, new URL(remoteUrlString));
1368+
webDriver = createRemoteWebDriver(mutableCapabilities, new URL(remoteUrlString));
13711369
} else {
1372-
webDriver = createLocalWebDriver(browserName, desiredCapabilities);
1370+
webDriver = createLocalWebDriver(browserName, mutableCapabilities);
13731371
}
13741372

13751373
webDriver.manage().timeouts().setScriptTimeout((int) (timeout * 1000.0), TimeUnit.MILLISECONDS);
@@ -1378,35 +1376,35 @@ protected WebDriver createWebDriver(String browserName, String desiredCapabiliti
13781376
return webDriver;
13791377
}
13801378

1381-
protected WebDriver createLocalWebDriver(String browserName, DesiredCapabilities desiredCapabilities) {
1379+
protected WebDriver createLocalWebDriver(String browserName, MutableCapabilities mutableCapabilities) {
13821380
System.out.println(browserName);
13831381
if ("ff".equals(browserName) || "firefox".equals(browserName)) {
1384-
return new FirefoxDriver(desiredCapabilities);
1382+
return new FirefoxDriver(mutableCapabilities);
13851383
} else if ("ie".equals(browserName) || "internetexplorer".equals(browserName)) {
1386-
return new InternetExplorerDriver(desiredCapabilities);
1384+
return new InternetExplorerDriver(mutableCapabilities);
13871385
} else if ("gc".equals(browserName) || "chrome".equals(browserName) || "googlechrome".equals(browserName)) {
1388-
return new ChromeDriver(desiredCapabilities);
1386+
return new ChromeDriver(mutableCapabilities);
13891387
} else if ("opera".equals(browserName)) {
1390-
return new OperaDriver(desiredCapabilities);
1388+
return new OperaDriver(mutableCapabilities);
13911389
} else if ("phantomjs".equals(browserName)) {
1392-
return new PhantomJSDriver(desiredCapabilities);
1390+
return new PhantomJSDriver(mutableCapabilities);
13931391
} else if ("safari".equals(browserName)) {
1394-
return new SafariDriver(desiredCapabilities);
1392+
return new SafariDriver(mutableCapabilities);
13951393
} else if ("htmlunit".equals(browserName)) {
1396-
return new HtmlUnitDriver(desiredCapabilities);
1394+
return new HtmlUnitDriver(mutableCapabilities);
13971395
} else if ("htmlunitwithjs".equals(browserName)) {
1398-
HtmlUnitDriver driver = new HtmlUnitDriver(desiredCapabilities);
1396+
HtmlUnitDriver driver = new HtmlUnitDriver(mutableCapabilities);
13991397
driver.setJavascriptEnabled(true);
14001398
return driver;
14011399
} else if ("iphone".equals(browserName) || "ipad".equals(browserName)) {
14021400
try {
1403-
return new IOSDriver<WebElement>(new URL(""), desiredCapabilities);
1401+
return new IOSDriver<WebElement>(new URL(""), mutableCapabilities);
14041402
} catch (Exception e) {
14051403
throw new SeleniumLibraryFatalException("Creating " + browserName + " instance failed.", e);
14061404
}
14071405
} else if ("android".equals(browserName)) {
14081406
try {
1409-
return new SelendroidDriver(desiredCapabilities);
1407+
return new SelendroidDriver(mutableCapabilities);
14101408
} catch (Exception e) {
14111409
throw new SeleniumLibraryFatalException(e);
14121410
}
@@ -1417,67 +1415,67 @@ protected WebDriver createLocalWebDriver(String browserName, DesiredCapabilities
14171415
throw new SeleniumLibraryFatalException(browserName + " is not a supported browser.");
14181416
}
14191417

1420-
protected WebDriver createRemoteWebDriver(DesiredCapabilities desiredCapabilities, URL remoteUrl) {
1418+
protected WebDriver createRemoteWebDriver(MutableCapabilities mutableCapabilities, URL remoteUrl) {
14211419
HttpCommandExecutor httpCommandExecutor = new HttpCommandExecutor(remoteUrl);
14221420
setRemoteWebDriverProxy(httpCommandExecutor);
1423-
return new Augmenter().augment(new RemoteWebDriver(httpCommandExecutor, desiredCapabilities));
1421+
return new Augmenter().augment(new RemoteWebDriver(httpCommandExecutor, mutableCapabilities));
14241422
}
14251423

1426-
protected DesiredCapabilities createDesiredCapabilities(String browserName, String desiredCapabilitiesString,
1424+
protected MutableCapabilities createmutableCapabilities(String browserName, String mutableCapabilitiesString,
14271425
String browserOptions) {
1428-
DesiredCapabilities desiredCapabilities;
1426+
mutableCapabilities mutableCapabilities;
14291427
if ("ff".equals(browserName) || "firefox".equals(browserName)) {
1430-
desiredCapabilities = DesiredCapabilities.firefox();
1431-
parseBrowserOptionsFirefox(browserOptions, desiredCapabilities);
1428+
mutableCapabilities = mutableCapabilities.firefox();
1429+
parseBrowserOptionsFirefox(browserOptions, mutableCapabilities);
14321430
} else if ("ie".equals(browserName) || "internetexplorer".equals(browserName)) {
1433-
desiredCapabilities = DesiredCapabilities.internetExplorer();
1431+
mutableCapabilities = mutableCapabilities.internetExplorer();
14341432
} else if ("gc".equals(browserName) || "chrome".equals(browserName) || "googlechrome".equals(browserName)) {
1435-
desiredCapabilities = DesiredCapabilities.chrome();
1433+
mutableCapabilities = mutableCapabilities.chrome();
14361434
} else if ("opera".equals(browserName)) {
1437-
desiredCapabilities = DesiredCapabilities.opera();
1435+
mutableCapabilities = mutableCapabilities.opera();
14381436
} else if ("phantomjs".equals(browserName)) {
1439-
desiredCapabilities = DesiredCapabilities.phantomjs();
1437+
mutableCapabilities = mutableCapabilities.phantomjs();
14401438
} else if ("safari".equals(browserName)) {
1441-
desiredCapabilities = DesiredCapabilities.safari();
1439+
mutableCapabilities = mutableCapabilities.safari();
14421440
} else if ("ipad".equals(browserName)) {
1443-
desiredCapabilities = DesiredCapabilities.ipad();
1441+
mutableCapabilities = mutableCapabilities.ipad();
14441442
} else if ("iphone".equals(browserName)) {
1445-
desiredCapabilities = DesiredCapabilities.iphone();
1443+
mutableCapabilities = mutableCapabilities.iphone();
14461444
} else if ("android".equals(browserName)) {
1447-
desiredCapabilities = DesiredCapabilities.android();
1445+
mutableCapabilities = mutableCapabilities.android();
14481446
} else if ("htmlunit".equals(browserName) || "htmlunitwithjs".equals(browserName)) {
1449-
desiredCapabilities = DesiredCapabilities.htmlUnit();
1447+
mutableCapabilities = mutableCapabilities.htmlUnit();
14501448
} else if ("jbrowser".equals(browserName)) {
1451-
desiredCapabilities = new DesiredCapabilities("jbrowser", "1", Platform.ANY);
1449+
mutableCapabilities = new mutableCapabilities("jbrowser", "1", Platform.ANY);
14521450
} else {
14531451
throw new SeleniumLibraryFatalException(browserName + " is not a supported browser.");
14541452
}
14551453

1456-
if (desiredCapabilitiesString != null && !"None".equals(desiredCapabilitiesString)) {
1457-
JSONObject jsonObject = (JSONObject) JSONValue.parse(desiredCapabilitiesString);
1454+
if (mutableCapabilitiesString != null && !"None".equals(mutableCapabilitiesString)) {
1455+
JSONObject jsonObject = (JSONObject) JSONValue.parse(mutableCapabilitiesString);
14581456
if (jsonObject != null) {
14591457
// Valid JSON
14601458
Iterator<?> iterator = jsonObject.entrySet().iterator();
14611459
while (iterator.hasNext()) {
14621460
Entry<?, ?> entry = (Entry<?, ?>) iterator.next();
1463-
desiredCapabilities.setCapability(entry.getKey().toString(), entry.getValue());
1461+
mutableCapabilities.setCapability(entry.getKey().toString(), entry.getValue());
14641462
}
14651463
} else {
14661464
// Invalid JSON. Old style key-value pairs
1467-
for (String capability : desiredCapabilitiesString.split(",")) {
1465+
for (String capability : mutableCapabilitiesString.split(",")) {
14681466
String[] keyValue = capability.split(":");
14691467
if (keyValue.length == 2) {
1470-
desiredCapabilities.setCapability(keyValue[0], keyValue[1]);
1468+
mutableCapabilities.setCapability(keyValue[0], keyValue[1]);
14711469
} else {
1472-
logging.warn("Invalid desiredCapabilities: " + desiredCapabilitiesString);
1470+
logging.warn("Invalid mutableCapabilities: " + mutableCapabilitiesString);
14731471
}
14741472
}
14751473
}
14761474
}
1477-
return desiredCapabilities;
1475+
return mutableCapabilities;
14781476
}
14791477

1480-
protected void parseBrowserOptionsFirefox(String browserOptions, DesiredCapabilities desiredCapabilities) {
1478+
protected void parseBrowserOptionsFirefox(String browserOptions, MutableCapabilities mutableCapabilities) {
14811479
if (browserOptions != null && !"NONE".equals(browserOptions)) {
14821480
JSONObject jsonObject = (JSONObject) JSONValue.parse(browserOptions);
14831481
if (jsonObject != null) {
@@ -1510,17 +1508,13 @@ protected void parseBrowserOptionsFirefox(String browserOptions, DesiredCapabili
15101508
Iterator<?> iteratorExtensions = extensions.iterator();
15111509
while (iteratorExtensions.hasNext()) {
15121510
File file = new File(iteratorExtensions.next().toString().replace('/', File.separatorChar));
1513-
try {
1514-
firefoxProfile.addExtension(file);
1515-
} catch (IOException e) {
1516-
logging.warn("Could not load extension: " + file.getAbsolutePath());
1517-
}
1511+
firefoxProfile.addExtension(file);
15181512
}
15191513
} else {
15201514
logging.warn("Unknown browserOption: " + key + ":" + entry.getValue());
15211515
}
15221516
}
1523-
desiredCapabilities.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
1517+
mutableCapabilities.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
15241518
} else {
15251519
logging.warn("Invalid browserOptions: " + browserOptions);
15261520
}
@@ -1558,7 +1552,7 @@ protected void setRemoteWebDriverProxy(HttpCommandExecutor httpCommandExecutor)
15581552
// proxies correctly.
15591553
client.setRoutePlanner(new DefaultHttpRoutePlanner(client.getConnectionManager().getSchemeRegistry()));
15601554
HttpHost proxy = new HttpHost(remoteWebDriverProxyHost, Integer.parseInt(remoteWebDriverProxyPort));
1561-
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
1555+
client.getParams().setParameter(RequestConfig.DEFAULT_PROXY, proxy);
15621556
} catch (SecurityException e) {
15631557
throw new SeleniumLibraryFatalException(
15641558
String.format("The SecurityManager does not allow us to lookup to the %s field.", fieldName));

0 commit comments

Comments
 (0)