@@ -9,14 +9,14 @@ let clientSideScripts = require('./clientsidescripts');
9
9
10
10
let logger = new Logger ( 'element' ) ;
11
11
12
+ export class WebdriverWebElement { }
13
+ export interface WebdriverWebElement extends WebElement { }
14
+
12
15
let WEB_ELEMENT_FUNCTIONS = [
13
16
'click' , 'sendKeys' , 'getTagName' , 'getCssValue' , 'getAttribute' , 'getText' , 'getSize' ,
14
17
'getLocation' , 'isEnabled' , 'isSelected' , 'submit' , 'clear' , 'isDisplayed' , 'getOuterHtml' ,
15
18
'getInnerHtml' , 'getId' , 'getRawId' , 'serialize' , 'takeScreenshot'
16
- ] ;
17
-
18
- export class WebdriverWebElement { }
19
- export interface WebdriverWebElement extends WebElement { }
19
+ ] as ( keyof WebdriverWebElement ) [ ] ;
20
20
21
21
/**
22
22
* ElementArrayFinder is used for operations on an array of elements (as opposed
@@ -87,7 +87,7 @@ export class ElementArrayFinder extends WebdriverWebElement {
87
87
88
88
// TODO(juliemr): might it be easier to combine this with our docs and just
89
89
// wrap each one explicity with its own documentation?
90
- WEB_ELEMENT_FUNCTIONS . forEach ( ( fnName : string ) => {
90
+ WEB_ELEMENT_FUNCTIONS . forEach ( ( fnName : keyof WebdriverWebElement ) => {
91
91
this [ fnName ] = ( ...args : any [ ] ) => {
92
92
let actionFn = ( webElem : any ) => {
93
93
return webElem [ fnName ] . apply ( webElem , args ) ;
@@ -96,7 +96,6 @@ export class ElementArrayFinder extends WebdriverWebElement {
96
96
} ;
97
97
} ) ;
98
98
}
99
- [ key : string ] : any ;
100
99
101
100
/**
102
101
* Create a shallow copy of ElementArrayFinder.
@@ -836,15 +835,14 @@ export class ElementFinder extends WebdriverWebElement {
836
835
this . browser_ , getWebElements , elementArrayFinder . locator ( ) ,
837
836
elementArrayFinder . actionResults_ ) ;
838
837
839
- WEB_ELEMENT_FUNCTIONS . forEach ( ( fnName : string ) => {
838
+ WEB_ELEMENT_FUNCTIONS . forEach ( ( fnName : keyof WebdriverWebElement ) => {
840
839
( this ) [ fnName ] = ( ...args : any [ ] ) => {
841
840
return ( this . elementArrayFinder_ ) [ fnName ]
842
841
. apply ( this . elementArrayFinder_ , args )
843
842
. toElementFinder_ ( ) ;
844
843
} ;
845
844
} ) ;
846
845
}
847
- [ key : string ] : any ;
848
846
849
847
static fromWebElement_ ( browser : ProtractorBrowser , webElem : WebElement , locator : Locator ) :
850
848
ElementFinder {
0 commit comments