add webdriverio framework

This commit is contained in:
thislight 2024-12-21 17:19:43 +08:00
parent 189662b9e0
commit 14beef39c2
No known key found for this signature in database
GPG key ID: FCFE5192241CCD4E
9 changed files with 409 additions and 2 deletions

25
test/objects/accounts.ts Normal file
View file

@ -0,0 +1,25 @@
import { $, browser } from "@wdio/globals";
import Page from "./page.js";
/**
* sub page containing specific selectors and methods for a specific page
*/
export class SignInPage extends Page {
public static get serverUrlInput() {
return $("[name=serverUrl]");
}
public static async beTheCurrentPage() {
const urlMatched =
new URL(await browser.getUrl()).pathname === "/accounts/sign-in";
const elementShowed = await this.serverUrlInput.isDisplayed();
return urlMatched && elementShowed;
}
/**
* overwrite specific options to adapt it to page object
*/
public static async open() {
return await super.open("accounts/sign-in");
}
}

15
test/objects/page.ts Normal file
View file

@ -0,0 +1,15 @@
import { browser } from "@wdio/globals";
/**
* main page object containing all methods, selectors and functionality
* that is shared across all page objects
*/
export default class Page {
/**
* Opens a sub page of the page
* @param path path of the sub page (e.g. /path/to/page.html)
*/
public static open(path: string) {
return browser.url(`/${path}`);
}
}

View file

@ -0,0 +1,7 @@
import Page from "./page";
export class IndexPage extends Page {
public static async open(path: string) {
return await super.open(path);
}
}