Skip to content
This repository was archived by the owner on Jul 29, 2024. It is now read-only.

Commit 29627f4

Browse files
committed
chore(selenium) - upgrade to selenium webdriver v 2.52.0
1 parent 1cbbe4f commit 29627f4

File tree

7 files changed

+37
-35
lines changed

7 files changed

+37
-35
lines changed

lib/debugger/debuggerCommons.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ exports.attachDebugger = function(pid, opt_port) {
1717
client.once('ready', function() {
1818
client.setBreakpoint({
1919
type: 'scriptRegExp',
20-
target: '.*executors\.js', //jshint ignore:line
21-
line: 40
20+
target: '.*command\.js', //jshint ignore:line
21+
line: 249
2222
}, function() {
2323
process.send('ready');
2424
client.reqContinue(function() {

lib/driverProviders/attachSession.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ var util = require('util'),
88
q = require('q'),
99
DriverProvider = require('./driverProvider'),
1010
log = require('../logger'),
11-
webdriver = require('selenium-webdriver'),
11+
WebDriver = require('selenium-webdriver').WebDriver,
1212
executors = require('selenium-webdriver/executors');
1313

1414
var AttachedSessionDriverProvider = function(config) {
@@ -33,13 +33,12 @@ AttachedSessionDriverProvider.prototype.setupEnv = function() {
3333
* Getting a new driver by attaching an existing session.
3434
*
3535
* @public
36-
* @return {webdriver.WebDriver} webdriver instance
36+
* @return {WebDriver} webdriver instance
3737
*/
3838
AttachedSessionDriverProvider.prototype.getNewDriver = function() {
3939
var executor = executors.createExecutor(this.config_.seleniumAddress);
40-
var newDriver;
41-
newDriver = new webdriver.WebDriver
42-
.attachToSession(executor, this.config_.seleniumSessionId);
40+
var newDriver = WebDriver
41+
.attachToSession(executor, this.config_.seleniumSessionId);
4342
this.drivers_.push(newDriver);
4443
return newDriver;
4544
};

lib/driverProviders/driverProvider.js

+13-8
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,20 @@ DriverProvider.prototype.quitDriver = function(driver) {
5858
}
5959

6060
var deferred = q.defer();
61-
driver.getSession().then(function(session_) {
62-
if (session_) {
63-
driver.quit().then(function() {
61+
if (driver.getSession() === undefined) {
62+
deferred.resolve();
63+
}
64+
else {
65+
driver.getSession().then(function(session_) {
66+
if (session_) {
67+
driver.quit().then(function() {
68+
deferred.resolve();
69+
});
70+
} else {
6471
deferred.resolve();
65-
});
66-
} else {
67-
deferred.resolve();
68-
}
69-
});
72+
}
73+
});
74+
}
7075
return deferred.promise;
7176
};
7277

lib/driverProviders/mock.js

+5-8
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,12 @@ var MockExecutor = function() {
1414
};
1515

1616
/**
17-
* @param {!webdriver.Command} command The command to execute.
18-
* @param {function(Error, !bot.response.ResponseObject=)} callback the function
19-
* to invoke when the command response is ready.
17+
* An execute function that returns a promise with a test value.
2018
*/
21-
MockExecutor.prototype.execute = function(command, callback) {
22-
callback(null, {
23-
status: '0',
24-
value: 'test_response'
25-
});
19+
MockExecutor.prototype.execute = function() {
20+
var deferred = q.defer();
21+
deferred.resolve({value: 'test_response'});
22+
return deferred.promise;
2623
};
2724

2825
var MockDriverProvider = function(config) {

lib/element.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ ElementArrayFinder.prototype.count = function() {
340340
return this.getWebElements().then(function(arr) {
341341
return arr.length;
342342
}, function(err) {
343-
if (err.code == webdriver.error.ErrorCode.NO_SUCH_ELEMENT) {
343+
if (err.code == webdriver.error.NoSuchElementError()) {
344344
return 0;
345345
} else {
346346
throw err;
@@ -671,8 +671,7 @@ var ElementFinder = function(ptor, elementArrayFinder) {
671671
var getWebElements = function() {
672672
return elementArrayFinder.getWebElements().then(function(webElements) {
673673
if (webElements.length === 0) {
674-
throw new webdriver.error.Error(
675-
webdriver.error.ErrorCode.NO_SUCH_ELEMENT,
674+
throw new webdriver.error.NoSuchElementError(
676675
'No element found using locator: ' +
677676
elementArrayFinder.locator_.toString());
678677
} else {

lib/protractor.js

+10-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
var util = require('util');
22
var url = require('url');
33
var webdriver = require('selenium-webdriver');
4+
var Command = require('selenium-webdriver/lib/command').Command;
5+
var CommandName = require('selenium-webdriver/lib/command').Name;
46
var helper = require('./util');
57
var log = require('./logger');
68
var ElementArrayFinder = require('./element').ElementArrayFinder;
@@ -105,16 +107,16 @@ var Protractor = function(webdriverInstance, opt_baseUrl, opt_rootElement,
105107
var methodsToSync = ['getCurrentUrl', 'getPageSource', 'getTitle'];
106108

107109
// Mix all other driver functionality into Protractor.
108-
for (var method in webdriverInstance) {
109-
if (!this[method] && typeof webdriverInstance[method] == 'function') {
110+
var self = this;
111+
Object.getOwnPropertyNames(webdriver.WebDriver.prototype).forEach(function(method) {
112+
if (!self[method] && typeof webdriverInstance[method] == 'function') {
110113
if (methodsToSync.indexOf(method) !== -1) {
111-
mixin(this, webdriverInstance, method, this.waitForAngular.bind(this));
114+
mixin(self, webdriverInstance, method, self.waitForAngular.bind(self));
112115
} else {
113-
mixin(this, webdriverInstance, method);
116+
mixin(self, webdriverInstance, method);
114117
}
115118
}
116-
}
117-
var self = this;
119+
});
118120

119121
/**
120122
* The wrapped webdriver instance. Use this to interact with pages that do
@@ -304,7 +306,7 @@ Protractor.prototype.executeScript_ = function(script, description) {
304306
}
305307

306308
return this.driver.schedule(
307-
new webdriver.Command(webdriver.CommandName.EXECUTE_SCRIPT).
309+
new Command(CommandName.EXECUTE_SCRIPT).
308310
setParameter('script', script).
309311
setParameter('args', Array.prototype.slice.call(arguments, 2)),
310312
description);
@@ -328,7 +330,7 @@ Protractor.prototype.executeAsyncScript_ =
328330
script = 'return (' + script + ').apply(null, arguments);';
329331
}
330332
return this.driver.schedule(
331-
new webdriver.Command(webdriver.CommandName.EXECUTE_ASYNC_SCRIPT).
333+
new Command(CommandName.EXECUTE_ASYNC_SCRIPT).
332334
setParameter('script', script).
333335
setParameter('args', Array.prototype.slice.call(arguments, 2)),
334336
description);

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"q": "1.4.1",
2121
"request": "~2.67.0",
2222
"saucelabs": "~1.0.1",
23-
"selenium-webdriver": "2.48.2",
23+
"selenium-webdriver": "2.52.0",
2424
"source-map-support": "~0.4.0"
2525
},
2626
"devDependencies": {

0 commit comments

Comments
 (0)