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

Commit 9bedcaa

Browse files
authored
chore(types): use keyof to remove index signature of ElementArrayFinder and ElementFinder (#3870)
1 parent 24ae714 commit 9bedcaa

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

lib/element.ts

+6-8
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ let clientSideScripts = require('./clientsidescripts');
99

1010
let logger = new Logger('element');
1111

12+
export class WebdriverWebElement {}
13+
export interface WebdriverWebElement extends WebElement {}
14+
1215
let WEB_ELEMENT_FUNCTIONS = [
1316
'click', 'sendKeys', 'getTagName', 'getCssValue', 'getAttribute', 'getText', 'getSize',
1417
'getLocation', 'isEnabled', 'isSelected', 'submit', 'clear', 'isDisplayed', 'getOuterHtml',
1518
'getInnerHtml', 'getId', 'getRawId', 'serialize', 'takeScreenshot'
16-
];
17-
18-
export class WebdriverWebElement {}
19-
export interface WebdriverWebElement extends WebElement {}
19+
] as (keyof WebdriverWebElement)[];
2020

2121
/**
2222
* ElementArrayFinder is used for operations on an array of elements (as opposed
@@ -87,7 +87,7 @@ export class ElementArrayFinder extends WebdriverWebElement {
8787

8888
// TODO(juliemr): might it be easier to combine this with our docs and just
8989
// wrap each one explicity with its own documentation?
90-
WEB_ELEMENT_FUNCTIONS.forEach((fnName: string) => {
90+
WEB_ELEMENT_FUNCTIONS.forEach((fnName: keyof WebdriverWebElement) => {
9191
this[fnName] = (...args: any[]) => {
9292
let actionFn = (webElem: any) => {
9393
return webElem[fnName].apply(webElem, args);
@@ -96,7 +96,6 @@ export class ElementArrayFinder extends WebdriverWebElement {
9696
};
9797
});
9898
}
99-
[key: string]: any;
10099

101100
/**
102101
* Create a shallow copy of ElementArrayFinder.
@@ -836,15 +835,14 @@ export class ElementFinder extends WebdriverWebElement {
836835
this.browser_, getWebElements, elementArrayFinder.locator(),
837836
elementArrayFinder.actionResults_);
838837

839-
WEB_ELEMENT_FUNCTIONS.forEach((fnName: string) => {
838+
WEB_ELEMENT_FUNCTIONS.forEach((fnName: keyof WebdriverWebElement) => {
840839
(this)[fnName] = (...args: any[]) => {
841840
return (this.elementArrayFinder_)[fnName]
842841
.apply(this.elementArrayFinder_, args)
843842
.toElementFinder_();
844843
};
845844
});
846845
}
847-
[key: string]: any;
848846

849847
static fromWebElement_(browser: ProtractorBrowser, webElem: WebElement, locator: Locator):
850848
ElementFinder {

0 commit comments

Comments
 (0)