import { Input } from '@contour/fet/lib/elements'; import { WebElement } from '@contour/fet/lib/elements/webElement'; import { ContourElement } from '../base/baseContourComponent'; import locator from './contourSelect.locator'; export class ContourSelect extends ContourElement { constructor(selector: string) { super(selector, locator); } async selectOptionByVisibleText(val: string, searchBeforeSelect = true) { await this.scroll(); await this.clickElement(); searchBeforeSelect && (await this.setInputField(val)); await browser.pause(1000); await new WebElement(this.locators.selectOption.replace(/#OPTION#/g, val)).clickElement(); // const elements = await new WebElement(this.locators.selectOption.replace(/#OPTION#/g, val)).getVisibleElements(); // elements.length > 0 && (await browser.keys('\uE007')); } async setInputField(val: string): Promise { await new Input(this.locators.selectInput).setInputField(val); } async getVisibleOptions() { const options = await new WebElement(this.locators.selectOptions, this.selector).getVisibleElements(); const returnOptions = []; for (const element of options) { returnOptions.push(element.getText()); } logger.info('returnOptions: ' + returnOptions); return returnOptions; } }