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

Commit 67b3dba

Browse files
authored
typings(selenium): try out new version of typings (#5084)
1 parent cbde6a7 commit 67b3dba

15 files changed

+6605
-86
lines changed

Diff for: .travis.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ addons:
3636
- g++-4.8
3737

3838
before_install:
39-
- g++-4.8 --version
39+
- travis_wait g++-4.8 --version
4040

4141
before_script:
4242
- npm run install_testapp
4343
- npm run pretest
4444
- mkdir -p $LOGS_DIR
45-
- ./scripts/travis_setup.sh
45+
- travis_wait ./scripts/travis_setup.sh
4646

4747

4848
script:

Diff for: lib/locators.ts

+54-72
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export class ProtractorBy extends WebdriverBy {
8080
this[name] = (...args: any[]): ProtractorLocator => {
8181
const locatorArguments = args;
8282
return {
83-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
83+
findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
8484
Promise<WebElement[]> => {
8585
let findElementArguments: any[] = [script];
8686
for (let i = 0; i < locatorArguments.length; i++) {
@@ -89,9 +89,7 @@ export class ProtractorBy extends WebdriverBy {
8989
findElementArguments.push(using);
9090
findElementArguments.push(rootSelector);
9191

92-
// TODO(selenium4): clean up cast to native Promise.
93-
return driver.findElements(By.js.apply(By, findElementArguments)) as
94-
Promise<WebElement[]>;
92+
return await driver.findElements(By.js.apply(By, findElementArguments));
9593
},
9694
toString: (): string => {
9795
return 'by.' + name + '("' + Array.prototype.join.call(locatorArguments, '", "') + '")';
@@ -132,12 +130,10 @@ export class ProtractorBy extends WebdriverBy {
132130
*/
133131
binding(bindingDescriptor: string): ProtractorLocator {
134132
return {
135-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
133+
findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
136134
Promise<WebElement[]> => {
137-
// TODO(selenium4): clean up cast to native Promise.
138-
return driver.findElements(By.js(
139-
clientSideScripts.findBindings, bindingDescriptor, false, using,
140-
rootSelector)) as Promise<WebElement[]>;
135+
return await driver.findElements(By.js(
136+
clientSideScripts.findBindings, bindingDescriptor, false, using, rootSelector));
141137
},
142138
toString: (): string => {
143139
return 'by.binding("' + bindingDescriptor + '")';
@@ -166,13 +162,11 @@ export class ProtractorBy extends WebdriverBy {
166162
*/
167163
exactBinding(bindingDescriptor: string): ProtractorLocator {
168164
return {
169-
findElementsOverride: (
170-
driver: WebDriver, using: WebElement, rootSelector: string): Promise<WebElement[]> => {
171-
// TODO(selenium4): clean up cast to native Promise.
172-
return driver.findElements(By.js(
173-
clientSideScripts.findBindings, bindingDescriptor, true, using, rootSelector)) as
174-
Promise<WebElement[]>;
175-
},
165+
findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
166+
Promise<WebElement[]> => {
167+
return await driver.findElements(By.js(
168+
clientSideScripts.findBindings, bindingDescriptor, true, using, rootSelector));
169+
},
176170
toString: (): string => {
177171
return 'by.exactBinding("' + bindingDescriptor + '")';
178172
}
@@ -196,12 +190,10 @@ export class ProtractorBy extends WebdriverBy {
196190
*/
197191
model(model: string): ProtractorLocator {
198192
return {
199-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
193+
findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
200194
Promise<WebElement[]> => {
201-
// TODO(selenium4): clean up cast to native Promise.
202-
return driver.findElements(
203-
By.js(clientSideScripts.findByModel, model, using, rootSelector)) as
204-
Promise<WebElement[]>;
195+
return await driver.findElements(
196+
By.js(clientSideScripts.findByModel, model, using, rootSelector));
205197
},
206198
toString: (): string => {
207199
return 'by.model("' + model + '")';
@@ -223,12 +215,10 @@ export class ProtractorBy extends WebdriverBy {
223215
*/
224216
buttonText(searchText: string): ProtractorLocator {
225217
return {
226-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
218+
findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
227219
Promise<WebElement[]> => {
228-
// TODO(selenium4): clean up cast to native Promise.
229-
return driver.findElements(By.js(
230-
clientSideScripts.findByButtonText, searchText, using, rootSelector)) as
231-
Promise<WebElement[]>;
220+
return driver.findElements(
221+
By.js(clientSideScripts.findByButtonText, searchText, using, rootSelector));
232222
},
233223
toString: (): string => {
234224
return 'by.buttonText("' + searchText + '")';
@@ -250,13 +240,11 @@ export class ProtractorBy extends WebdriverBy {
250240
*/
251241
partialButtonText(searchText: string): ProtractorLocator {
252242
return {
253-
findElementsOverride: (
254-
driver: WebDriver, using: WebElement, rootSelector: string): Promise<WebElement[]> => {
255-
// TODO(selenium4): clean up cast to native Promise.
256-
return driver.findElements(By.js(
257-
clientSideScripts.findByPartialButtonText, searchText, using, rootSelector)) as
258-
Promise<WebElement[]>;
259-
},
243+
findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
244+
Promise<WebElement[]> => {
245+
return driver.findElements(
246+
By.js(clientSideScripts.findByPartialButtonText, searchText, using, rootSelector));
247+
},
260248
toString: (): string => {
261249
return 'by.partialButtonText("' + searchText + '")';
262250
}
@@ -267,36 +255,34 @@ export class ProtractorBy extends WebdriverBy {
267255
private byRepeaterInner(exact: boolean, repeatDescriptor: string): ProtractorLocator {
268256
let name = 'by.' + (exact ? 'exactR' : 'r') + 'epeater';
269257
return {
270-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
271-
Promise<WebElement[]> => {
272-
// TODO(selenium4): clean up cast to native Promise.
273-
return driver.findElements(By.js(
274-
clientSideScripts.findAllRepeaterRows, repeatDescriptor, exact, using,
275-
rootSelector)) as Promise<WebElement[]>;
276-
},
258+
findElementsOverride: async(
259+
driver: WebDriver, using: WebElement, rootSelector: string): Promise<WebElement[]> => {
260+
return driver.findElements(By.js(
261+
clientSideScripts.findAllRepeaterRows, repeatDescriptor, exact, using, rootSelector));
262+
},
277263
toString: (): string => {
278264
return name + '("' + repeatDescriptor + '")';
279265
},
280266
row: (index: number): ProtractorLocator => {
281267
return {
282-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
268+
findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
283269
Promise<WebElement[]> => {
284-
return driver.findElements(By.js(
285-
clientSideScripts.findRepeaterRows, repeatDescriptor, exact, index,
286-
using, rootSelector)) as Promise<WebElement[]>;
270+
return await driver.findElements(By.js(
271+
clientSideScripts.findRepeaterRows, repeatDescriptor, exact, index, using,
272+
rootSelector));
287273
},
288274
toString: (): string => {
289275
return name + '(' + repeatDescriptor + '").row("' + index + '")"';
290276
},
291277
column: (binding: string): ProtractorLocator => {
292278
return {
293-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
294-
Promise<WebElement[]> => {
295-
// TODO(selenium4): clean up cast to native Promise.
296-
return driver.findElements(By.js(
297-
clientSideScripts.findRepeaterElement, repeatDescriptor, exact,
298-
index, binding, using, rootSelector)) as Promise<WebElement[]>;
299-
},
279+
findElementsOverride:
280+
async(driver: WebDriver, using: WebElement, rootSelector: string):
281+
Promise<WebElement[]> => {
282+
return driver.findElements(By.js(
283+
clientSideScripts.findRepeaterElement, repeatDescriptor, exact, index,
284+
binding, using, rootSelector));
285+
},
300286
toString: (): string => {
301287
return name + '("' + repeatDescriptor + '").row("' + index + '").column("' +
302288
binding + '")';
@@ -307,25 +293,24 @@ export class ProtractorBy extends WebdriverBy {
307293
},
308294
column: (binding: string): ProtractorLocator => {
309295
return {
310-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
296+
findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
311297
Promise<WebElement[]> => {
312-
// TODO(selenium4): clean up cast to native Promise.
313298
return driver.findElements(By.js(
314-
clientSideScripts.findRepeaterColumn, repeatDescriptor, exact, binding,
315-
using, rootSelector)) as Promise<WebElement[]>;
299+
clientSideScripts.findRepeaterColumn, repeatDescriptor, exact, binding, using,
300+
rootSelector));
316301
},
317302
toString: (): string => {
318303
return name + '("' + repeatDescriptor + '").column("' + binding + '")';
319304
},
320305
row: (index: number): ProtractorLocator => {
321306
return {
322-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
323-
Promise<WebElement[]> => {
324-
// TODO(selenium4): clean up cast to native Promise.
325-
return driver.findElements(By.js(
326-
clientSideScripts.findRepeaterElement, repeatDescriptor, exact,
327-
index, binding, using, rootSelector)) as Promise<WebElement[]>;
328-
},
307+
findElementsOverride:
308+
async(driver: WebDriver, using: WebElement, rootSelector: string):
309+
Promise<WebElement[]> => {
310+
return driver.findElements(By.js(
311+
clientSideScripts.findRepeaterElement, repeatDescriptor, exact, index,
312+
binding, using, rootSelector));
313+
},
329314
toString: (): string => {
330315
return name + '("' + repeatDescriptor + '").column("' + binding + '").row("' +
331316
index + '")';
@@ -437,12 +422,11 @@ export class ProtractorBy extends WebdriverBy {
437422
cssContainingText(cssSelector: string, searchText: string|RegExp): ProtractorLocator {
438423
searchText = (searchText instanceof RegExp) ? '__REGEXP__' + searchText.toString() : searchText;
439424
return {
440-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
425+
findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
441426
Promise<WebElement[]> => {
442-
// TODO(selenium4): clean up cast to native Promise.
443-
return driver.findElements(By.js(
444-
clientSideScripts.findByCssContainingText, cssSelector, searchText, using,
445-
rootSelector)) as Promise<WebElement[]>;
427+
return await driver.findElements(By.js(
428+
clientSideScripts.findByCssContainingText, cssSelector, searchText, using,
429+
rootSelector));
446430
},
447431
toString: (): string => {
448432
return 'by.cssContainingText("' + cssSelector + '", "' + searchText + '")';
@@ -471,12 +455,10 @@ export class ProtractorBy extends WebdriverBy {
471455
*/
472456
options(optionsDescriptor: string): ProtractorLocator {
473457
return {
474-
findElementsOverride: (driver: WebDriver, using: WebElement, rootSelector: string):
458+
findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
475459
Promise<WebElement[]> => {
476-
// TODO(selenium4): clean up cast to native Promise.
477-
return driver.findElements(By.js(
478-
clientSideScripts.findByOptions, optionsDescriptor, using, rootSelector)) as
479-
Promise<WebElement[]>;
460+
return await driver.findElements(
461+
By.js(clientSideScripts.findByOptions, optionsDescriptor, using, rootSelector));
480462
},
481463
toString: (): string => {
482464
return 'by.option("' + optionsDescriptor + '")';

Diff for: package-lock.json

+24-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
"author": "Julie Ralph <[email protected]>",
1414
"dependencies": {
1515
"@types/node": "^6.0.46",
16-
"@types/selenium-webdriver": "^3.0.0",
1716
"blocking-proxy": "^1.0.0",
1817
"browserstack": "^1.5.1",
1918
"chalk": "^1.1.3",

Diff for: tsconfig.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"website",
1717
"scripts",
1818
"exampleTypescript",
19-
"spec/**/*"
19+
"spec/**/*",
20+
"typings"
2021
]
2122
}

0 commit comments

Comments
 (0)