Make pages as a page object
This commit is contained in:
parent
b5540dea9a
commit
d37896887e
29 changed files with 822 additions and 976 deletions
22
e2e/lib/JSONOptionPage.ts
Normal file
22
e2e/lib/JSONOptionPage.ts
Normal file
|
@ -0,0 +1,22 @@
|
|||
import { Lanthan } from 'lanthan';
|
||||
import { WebDriver, By } from 'selenium-webdriver';
|
||||
|
||||
export default class JSONOptionPage {
|
||||
private webdriver: WebDriver;
|
||||
|
||||
constructor(lanthan: Lanthan) {
|
||||
this.webdriver = lanthan.getWebDriver();
|
||||
}
|
||||
|
||||
async updateSettings(value: string): Promise<void> {
|
||||
let textarea = await this.webdriver.findElement(By.css('textarea'));
|
||||
await this.webdriver.executeScript(`document.querySelector('textarea').value = '${value}'`)
|
||||
await textarea.sendKeys(' ');
|
||||
await this.webdriver.executeScript(() => document.querySelector('textarea')!!.blur());
|
||||
}
|
||||
|
||||
async getErrorMessage(): Promise<string> {
|
||||
let error = await this.webdriver.findElement(By.css('.settings-ui-input-error'));
|
||||
return error.getText();
|
||||
}
|
||||
}
|
Reference in a new issue