@@ -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 + '")' ;
0 commit comments