diff --git a/lib/driverProviders/direct.ts b/lib/driverProviders/direct.ts index f6c9fc4d7..b44c287b0 100644 --- a/lib/driverProviders/direct.ts +++ b/lib/driverProviders/direct.ts @@ -7,7 +7,7 @@ import * as fs from 'fs'; import * as path from 'path'; 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 {Driver as FirefoxDriver, ServiceBuilder as FirefoxServiceBuilder} from 'selenium-webdriver/firefox'; import {Config} from '../config'; import {BrowserError} from '../exitCodes'; @@ -81,12 +81,8 @@ export class Direct extends DriverProvider { } let chromeService = new ChromeServiceBuilder(chromeDriverFile).build(); - // driver = ChromeDriver.createSession(new Capabilities(this.config_.capabilities), - // chromeService); - // TODO(ralphj): fix typings driver = - require('selenium-webdriver/chrome') - .Driver.createSession(new Capabilities(this.config_.capabilities), chromeService); + ChromeDriver.createSession(new Capabilities(this.config_.capabilities), chromeService); break; case 'firefox': let geckoDriverFile: string; @@ -101,14 +97,9 @@ export class Direct extends DriverProvider { 'Run \'webdriver-manager update\' to download binaries.'); } - // TODO (mgiambalvo): Turn this into an import when the selenium typings are updated. - const FirefoxServiceBuilder = require('selenium-webdriver/firefox').ServiceBuilder; - let firefoxService = new FirefoxServiceBuilder(geckoDriverFile).build(); - // TODO(mgiambalvo): Fix typings. - driver = - require('selenium-webdriver/firefox') - .Driver.createSession(new Capabilities(this.config_.capabilities), firefoxService); + driver = FirefoxDriver.Driver.createSession( + new Capabilities(this.config_.capabilities), firefoxService); break; default: throw new BrowserError( diff --git a/lib/driverProviders/driverProvider.ts b/lib/driverProviders/driverProvider.ts index 37270771a..3af678e10 100644 --- a/lib/driverProviders/driverProvider.ts +++ b/lib/driverProviders/driverProvider.ts @@ -3,7 +3,7 @@ * It is responsible for setting up the account object, tearing * it down, and setting up the driver correctly. */ -import {Builder, promise as wdpromise, Session, WebDriver} from 'selenium-webdriver'; +import {Builder, promise as wdpromise, Session, ThenableWebDriver, WebDriver} from 'selenium-webdriver'; import {BlockingProxyRunner} from '../bpRunner'; import {Config} from '../config'; @@ -42,7 +42,7 @@ export abstract class DriverProvider { * @public * @return webdriver instance */ - getNewDriver() { + getNewDriver(): ThenableWebDriver { let builder: Builder; if (this.config_.useBlockingProxy) { builder = diff --git a/package.json b/package.json index b3a13bdd0..343ed07e1 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "dependencies": { "@types/node": "^6.0.46", "@types/q": "^0.0.32", - "@types/selenium-webdriver": "~2.53.39", + "@types/selenium-webdriver": "3.0.0", "blocking-proxy": "0.0.5", "chalk": "^1.1.3", "glob": "^7.0.3",