[functional/services] import By/until from module (#66015)

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
Dmitry Lemeshko 2020-05-12 11:53:20 +03:00 committed by GitHub
parent 724f282059
commit 69a61d4ee7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 25 deletions

View file

@ -17,20 +17,16 @@
* under the License.
*/
import { WebDriver, WebElement, By } from 'selenium-webdriver';
import { WebDriver, WebElement, By, until } from 'selenium-webdriver';
import { FtrProviderContext } from '../ftr_provider_context';
import { WebElementWrapper } from './lib/web_element_wrapper';
export async function FindProvider({ getService }: FtrProviderContext) {
const log = getService('log');
const config = getService('config');
const webdriver = await getService('__webdriver__').init();
const { driver, browserType } = await getService('__webdriver__').init();
const retry = getService('retry');
const driver = webdriver.driver;
const until = webdriver.until;
const browserType = webdriver.browserType;
const WAIT_FOR_EXISTS_TIME = config.get('timeouts.waitForExists');
const POLLING_TIME = 500;
const defaultFindTimeout = config.get('timeouts.find');
@ -40,7 +36,7 @@ export async function FindProvider({ getService }: FtrProviderContext) {
WebElementWrapper.create(
webElement,
locator,
webdriver,
driver,
defaultFindTimeout,
fixedHeaderHeight,
log,

View file

@ -18,7 +18,7 @@
*/
import { delay } from 'bluebird';
import { WebElement, WebDriver, By, Key, until } from 'selenium-webdriver';
import { WebElement, WebDriver, By, Key } from 'selenium-webdriver';
import { PNG } from 'pngjs';
// @ts-ignore not supported yet
import cheerio from 'cheerio';
@ -29,12 +29,6 @@ import { CustomCheerio, CustomCheerioStatic } from './custom_cheerio_api';
import { scrollIntoViewIfNecessary } from './scroll_into_view_if_necessary';
import { Browsers } from '../../remote/browsers';
interface Driver {
driver: WebDriver;
By: typeof By;
until: typeof until;
}
interface TypeOptions {
charByChar: boolean;
}
@ -51,16 +45,15 @@ const RETRY_CLICK_RETRY_ON_ERRORS = [
];
export class WebElementWrapper {
private By = this.webDriver.By;
private driver: WebDriver = this.webDriver.driver;
private By = By;
private Keys = Key;
public isW3CEnabled: boolean = (this.webDriver.driver as any).executor_.w3c === true;
public isW3CEnabled: boolean = (this.driver as any).executor_.w3c === true;
public isChromium: boolean = [Browsers.Chrome, Browsers.ChromiumEdge].includes(this.browserType);
public static create(
webElement: WebElement | WebElementWrapper,
locator: By | null,
webDriver: Driver,
driver: WebDriver,
timeout: number,
fixedHeaderHeight: number,
logger: ToolingLog,
@ -73,7 +66,7 @@ export class WebElementWrapper {
return new WebElementWrapper(
webElement,
locator,
webDriver,
driver,
timeout,
fixedHeaderHeight,
logger,
@ -84,7 +77,7 @@ export class WebElementWrapper {
constructor(
public _webElement: WebElement,
private locator: By | null,
private webDriver: Driver,
private driver: WebDriver,
private timeout: number,
private fixedHeaderHeight: number,
private logger: ToolingLog,
@ -109,7 +102,7 @@ export class WebElementWrapper {
return WebElementWrapper.create(
otherWebElement,
locator,
this.webDriver,
this.driver,
this.timeout,
this.fixedHeaderHeight,
this.logger,

View file

@ -58,7 +58,7 @@ export async function RemoteProvider({ getService }: FtrProviderContext) {
Fs.writeFileSync(path, JSON.stringify(JSON.parse(coverageJson), null, 2));
};
const { driver, By, until, consoleLog$ } = await initWebDriver(
const { driver, consoleLog$ } = await initWebDriver(
log,
browserType,
lifecycle,
@ -153,5 +153,5 @@ export async function RemoteProvider({ getService }: FtrProviderContext) {
await driver.quit();
});
return { driver, By, until, browserType, consoleLog$ };
return { driver, browserType, consoleLog$ };
}

View file

@ -28,7 +28,7 @@ import { delay } from 'bluebird';
import chromeDriver from 'chromedriver';
// @ts-ignore types not available
import geckoDriver from 'geckodriver';
import { Builder, Capabilities, By, logging, until } from 'selenium-webdriver';
import { Builder, Capabilities, logging } from 'selenium-webdriver';
import chrome from 'selenium-webdriver/chrome';
import firefox from 'selenium-webdriver/firefox';
import edge from 'selenium-webdriver/edge';
@ -310,7 +310,7 @@ async function attemptToCreateCommand(
return;
} // abort
return { driver: session, By, until, consoleLog$ };
return { driver: session, consoleLog$ };
}
export async function initWebDriver(