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

Commit

Permalink
fix(types): update for selenium-webdriver types creating transpile er…
Browse files Browse the repository at this point in the history
…rors (#3848)

- pin package.json to a specific version of @types/selenium-webdriver
  • Loading branch information
cnishina authored Dec 20, 2016
1 parent 41b5a19 commit 83694f5
Show file tree
Hide file tree
Showing 16 changed files with 85 additions and 82 deletions.
11 changes: 5 additions & 6 deletions lib/browser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,7 @@ export class ProtractorBrowser extends Webdriver {
* @returns {!webdriver.promise.Promise} A promise that will be resolved to an
* array of the located {@link webdriver.WebElement}s.
*/
findElements(locator: Locator): webdriver.promise.Promise<any> {
findElements(locator: Locator): wdpromise.Promise<any> {
return this.element.all(locator).getWebElements();
}

Expand All @@ -572,8 +572,7 @@ export class ProtractorBrowser extends Webdriver {
* @returns {!webdriver.promise.Promise} A promise that will resolve to whether
* the element is present on the page.
*/
isElementPresent(locatorOrElement: ProtractorBy|
webdriver.WebElement): webdriver.promise.Promise<any> {
isElementPresent(locatorOrElement: ProtractorBy|WebElement): wdpromise.Promise<any> {
let element =
((locatorOrElement as any).isPresent) ? locatorOrElement : this.element(locatorOrElement);
return (element as any).isPresent();
Expand Down Expand Up @@ -823,7 +822,7 @@ export class ProtractorBrowser extends Webdriver {
* @returns {!webdriver.promise.Promise} A promise that will resolve once
* page has been changed.
*/
setLocation(url: string): webdriver.promise.Promise<any> {
setLocation(url: string): wdpromise.Promise<any> {
this.waitForAngular();
return this
.executeScriptWithDescription(
Expand All @@ -845,7 +844,7 @@ export class ProtractorBrowser extends Webdriver {
* @returns {webdriver.promise.Promise<string>} The current absolute url from
* AngularJS.
*/
getLocationAbsUrl(): webdriver.promise.Promise<any> {
getLocationAbsUrl(): wdpromise.Promise<any> {
this.waitForAngular();
return this.executeScriptWithDescription(
clientSideScripts.getLocationAbsUrl, 'Protractor.getLocationAbsUrl()', this.rootEl);
Expand Down Expand Up @@ -930,7 +929,7 @@ export class ProtractorBrowser extends Webdriver {
* @param {number=} opt_debugPort Optional port to use for the debugging
* process
*/
pause(opt_debugPort?: number): webdriver.promise.Promise<any> {
pause(opt_debugPort?: number): wdpromise.Promise<any> {
if (this.debugHelper.isAttached()) {
logger.info('Encountered browser.pause(), but debugger already attached.');
return wdpromise.fulfilled(true);
Expand Down
25 changes: 12 additions & 13 deletions lib/debugger.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import * as net from 'net';
import {promise as wdpromise, WebElement} from 'selenium-webdriver';
import * as util from 'util'

import {ProtractorBrowser} from './browser';
Expand All @@ -11,7 +12,7 @@ declare var global: any;
declare var process: any;

let logger = new Logger('protractor');
let webdriver = require('selenium-webdriver');
const webdriver = require('selenium-webdriver');

export class DebugHelper {
/**
Expand Down Expand Up @@ -60,17 +61,15 @@ export class DebugHelper {
}
let context: Context = {require: require};
global.list = (locator: Locator) => {
return (<Ptor>global.protractor)
.browser.findElements(locator)
.then((arr: webdriver.WebElement[]) => {
let found: string[] = [];
for (let i = 0; i < arr.length; ++i) {
arr[i].getText().then((text: string) => {
found.push(text);
});
}
return found;
return (<Ptor>global.protractor).browser.findElements(locator).then((arr: WebElement[]) => {
let found: string[] = [];
for (let i = 0; i < arr.length; ++i) {
arr[i].getText().then((text: string) => {
found.push(text);
});
}
return found;
});
};
for (let key in global) {
context[key] = global[key];
Expand Down Expand Up @@ -230,9 +229,9 @@ export class DebugHelper {
* is done. The promise will resolve to a boolean which represents whether
* this is the first time that the debugger is called.
*/
private validatePortAvailability_(port: number): webdriver.promise.Promise<any> {
private validatePortAvailability_(port: number): wdpromise.Promise<any> {
if (this.debuggerValidated_) {
return webdriver.promise.fulfilled(false);
return wdpromise.fulfilled(false);
}

let doneDeferred = webdriver.promise.defer();
Expand Down
13 changes: 6 additions & 7 deletions lib/driverProviders/attachSession.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@
* it down, and setting up the driver correctly.
*/
import * as q from 'q';
import {WebDriver} from 'selenium-webdriver';
import * as executors from 'selenium-webdriver/executors';

import {Config} from '../config';
import {Logger} from '../logger';

import {DriverProvider} from './driverProvider';

let webdriver = require('selenium-webdriver');
let executors = require('selenium-webdriver/executors');

let logger = new Logger('attachSession');

export class AttachSession extends DriverProvider {
Expand All @@ -38,9 +37,9 @@ export class AttachSession extends DriverProvider {
* @public
* @return {WebDriver} webdriver instance
*/
getNewDriver(): webdriver.WebDriver {
getNewDriver(): WebDriver {
var executor = executors.createExecutor(this.config_.seleniumAddress);
var newDriver = webdriver.WebDriver.attachToSession(executor, this.config_.seleniumSessionId);
var newDriver = WebDriver.attachToSession(executor, this.config_.seleniumSessionId);
this.drivers_.push(newDriver);
return newDriver;
}
Expand All @@ -50,8 +49,8 @@ export class AttachSession extends DriverProvider {
*
* @public
*/
quitDriver(): q.Promise<webdriver.WebDriver> {
let defer = q.defer<webdriver.WebDriver>();
quitDriver(): q.Promise<WebDriver> {
let defer = q.defer<WebDriver>();
defer.resolve(null);
return defer.promise;
}
Expand Down
5 changes: 3 additions & 2 deletions lib/driverProviders/browserStack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
*/
import * as https from 'https';
import * as q from 'q';
import {Session, WebDriver} from 'selenium-webdriver';
import * as util from 'util';

import {Config} from '../config';
Expand All @@ -27,9 +28,9 @@ export class BrowserStack extends DriverProvider {
* @return {q.promise} A promise that will resolve when the update is complete.
*/
updateJob(update: any): q.Promise<any> {
let deferredArray = this.drivers_.map((driver: webdriver.WebDriver) => {
let deferredArray = this.drivers_.map((driver: WebDriver) => {
let deferred = q.defer();
driver.getSession().then((session: webdriver.Session) => {
driver.getSession().then((session: Session) => {
let headers: Object = {
'Content-Type': 'application/json',
'Authorization': 'Basic ' +
Expand Down
21 changes: 10 additions & 11 deletions lib/driverProviders/direct.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,18 @@
import * as fs from 'fs';
import * as path from 'path';
import * as q from 'q';
import {Capabilities, WebDriver} from 'selenium-webdriver';
import {Driver as ChromeDriver, ServiceBuilder as ChromeServiceBuilder} from 'selenium-webdriver/chrome';
import {Driver as FirefoxDriver} from 'selenium-webdriver/firefox';

import {Config} from '../config';
import {BrowserError} from '../exitCodes';
import {Logger} from '../logger';

import {DriverProvider} from './driverProvider';

let webdriver = require('selenium-webdriver'), chrome = require('selenium-webdriver/chrome'),
firefox = require('selenium-webdriver/firefox');
let SeleniumConfig = require('webdriver-manager/built/lib/config').Config;
let SeleniumChrome = require('webdriver-manager/built/lib/binaries/chrome_driver').ChromeDriver;
let SeleniumStandAlone = require('webdriver-manager/built/lib/binaries/stand_alone').StandAlone;

const SeleniumConfig = require('webdriver-manager/built/lib/config').Config;
const SeleniumChrome = require('webdriver-manager/built/lib/binaries/chrome_driver').ChromeDriver;

let logger = new Logger('direct');
export class Direct extends DriverProvider {
Expand Down Expand Up @@ -56,8 +55,8 @@ export class Direct extends DriverProvider {
* @override
* @return webdriver instance
*/
getNewDriver(): webdriver.WebDriver {
let driver: webdriver.WebDriver;
getNewDriver(): WebDriver {
let driver: WebDriver;
switch (this.config_.capabilities.browserName) {
case 'chrome':
let defaultChromeDriverPath = path.resolve(
Expand All @@ -73,14 +72,14 @@ export class Direct extends DriverProvider {
throw new BrowserError(logger, 'Could not find chromedriver at ' + chromeDriverFile);
}

let service = new chrome.ServiceBuilder(chromeDriverFile).build();
driver = new chrome.Driver(new webdriver.Capabilities(this.config_.capabilities), service);
let service = new ChromeServiceBuilder(chromeDriverFile).build();
driver = new ChromeDriver(new Capabilities(this.config_.capabilities), service);
break;
case 'firefox':
if (this.config_.firefoxPath) {
this.config_.capabilities['firefox_binary'] = this.config_.firefoxPath;
}
driver = new firefox.Driver(this.config_.capabilities);
driver = new FirefoxDriver(this.config_.capabilities);
break;
default:
throw new BrowserError(
Expand Down
17 changes: 8 additions & 9 deletions lib/driverProviders/driverProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@
* it down, and setting up the driver correctly.
*/
import * as q from 'q';
import {Builder, Session, WebDriver} from 'selenium-webdriver';

import {Config} from '../config';

let webdriver = require('selenium-webdriver');

export class DriverProvider {
drivers_: webdriver.WebDriver[];
drivers_: WebDriver[];
config_: Config;

constructor(config: Config) {
Expand All @@ -35,7 +34,7 @@ export class DriverProvider {
* @return webdriver instance
*/
getNewDriver() {
let builder = new webdriver.Builder()
let builder = new Builder()
.usingServer(this.config_.seleniumAddress)
.usingWebDriverProxy(this.config_.webDriverProxy)
.withCapabilities(this.config_.capabilities);
Expand All @@ -53,18 +52,18 @@ export class DriverProvider {
* @public
* @param webdriver instance
*/
quitDriver(driver: webdriver.WebDriver): q.Promise<webdriver.WebDriver> {
quitDriver(driver: WebDriver): q.Promise<WebDriver> {
let driverIndex = this.drivers_.indexOf(driver);
if (driverIndex >= 0) {
this.drivers_.splice(driverIndex, 1);
}

let deferred = q.defer<webdriver.WebDriver>();
let deferred = q.defer<WebDriver>();
if (driver.getSession() === undefined) {
deferred.resolve();
} else {
driver.getSession()
.then((session_) => {
.then((session_: Session) => {
if (session_) {
driver.quit().then(function() {
deferred.resolve();
Expand Down Expand Up @@ -104,8 +103,8 @@ export class DriverProvider {
* @return {q.promise} A promise which will resolve when the environment
* is down.
*/
teardownEnv(): q.Promise<q.Promise<webdriver.WebDriver>[]> {
return q.all<any>(this.drivers_.map((driver: webdriver.WebDriver) => {
teardownEnv(): q.Promise<q.Promise<WebDriver>[]> {
return q.all<any>(this.drivers_.map((driver: WebDriver) => {
return this.quitDriver(driver);
}));
}
Expand Down
9 changes: 5 additions & 4 deletions lib/driverProviders/local.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@ import {Logger} from '../logger';

import {DriverProvider} from './driverProvider';

let SeleniumConfig = require('webdriver-manager/built/lib/config').Config;
let SeleniumChrome = require('webdriver-manager/built/lib/binaries/chrome_driver').ChromeDriver;
let SeleniumStandAlone = require('webdriver-manager/built/lib/binaries/stand_alone').StandAlone;
let remote = require('selenium-webdriver/remote');
const SeleniumConfig = require('webdriver-manager/built/lib/config').Config;
const SeleniumChrome = require('webdriver-manager/built/lib/binaries/chrome_driver').ChromeDriver;
const SeleniumStandAlone = require('webdriver-manager/built/lib/binaries/stand_alone').StandAlone;
const remote = require('selenium-webdriver/remote');

let logger = new Logger('local');

export class Local extends DriverProvider {
server_: any;
constructor(config: Config) {
Expand Down
13 changes: 9 additions & 4 deletions lib/driverProviders/mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@
* server.
*/
import * as q from 'q';
import {Session, WebDriver} from 'selenium-webdriver';
import * as executors from 'selenium-webdriver/executors';

import {Config} from '../config';
import {DriverProvider} from './driverProvider';

let webdriver = require('selenium-webdriver');
export class MockExecutor {
execute(command: any): any {}
}

export class Mock extends DriverProvider {
constructor(config?: Config) {
Expand Down Expand Up @@ -39,9 +44,9 @@ export class Mock extends DriverProvider {
* @override
* @return webdriver instance
*/
getNewDriver(): webdriver.WebDriver {
let mockSession = new webdriver.Session('test_session_id', {});
let newDriver = new webdriver.WebDriver(mockSession, new Mock());
getNewDriver(): WebDriver {
let mockSession = new Session('test_session_id', {});
let newDriver = new WebDriver(mockSession, new MockExecutor());
this.drivers_.push(newDriver);
return newDriver;
}
Expand Down
7 changes: 4 additions & 3 deletions lib/driverProviders/sauce.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
*/

import * as q from 'q';
import {Session, WebDriver} from 'selenium-webdriver';
import * as util from 'util';

import {Config} from '../config';
import {Logger} from '../logger';

import {DriverProvider} from './driverProvider';

let SauceLabs = require('saucelabs');
const SauceLabs = require('saucelabs');

let logger = new Logger('sauce');
export class Sauce extends DriverProvider {
Expand All @@ -29,9 +30,9 @@ export class Sauce extends DriverProvider {
* @return {q.promise} A promise that will resolve when the update is complete.
*/
updateJob(update: any): q.Promise<any> {
var deferredArray = this.drivers_.map((driver: webdriver.WebDriver) => {
var deferredArray = this.drivers_.map((driver: WebDriver) => {
var deferred = q.defer();
driver.getSession().then((session: webdriver.Session) => {
driver.getSession().then((session: Session) => {
logger.info('SauceLabs results available at http://saucelabs.com/jobs/' + session.getId());
this.sauceServer_.updateJob(session.getId(), update, (err: Error) => {
if (err) {
Expand Down
Loading

0 comments on commit 83694f5

Please sign in to comment.