| import { PageObject } from '../../../infra-sk/modules/page_object/page_object'; |
| import { PageObjectElement, PageObjectElementList } from '../../../infra-sk/modules/page_object/page_object_element'; |
| |
| /** A page object for the CorpusSelectorSkPO component. */ |
| export class CorpusSelectorSkPO extends PageObject { |
| private get loadingMessage(): PageObjectElement { |
| return this.bySelector('p'); |
| } |
| |
| private get selectedCorpus(): PageObjectElement { |
| return this.bySelector('li.selected'); |
| } |
| |
| private get corpora(): PageObjectElementList { |
| return this.bySelectorAll('li'); |
| } |
| |
| async isLoadingMessageVisible() { return !(await this.loadingMessage.isEmpty()); } |
| |
| async getCorpora() { return this.corpora.map((li) => li.innerText); } |
| |
| /** Returns the selected corpus, or null if none is selected. */ |
| async getSelectedCorpus() { |
| return (await this.selectedCorpus.isEmpty()) ? null : this.selectedCorpus.innerText; |
| } |
| |
| async clickCorpus(corpus: string) { |
| const corpusLi = await this.corpora.find((li) => li.isInnerTextEqualTo(corpus)); |
| await corpusLi!.click(); |
| } |
| } |