多维表格
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
982 B

import { Page, expect, Locator } from "@playwright/test";
type ResponseSelector = (json: any) => boolean;
export default abstract class BasePage {
readonly rootPage: Page;
abstract get(args: any): Locator;
constructor(rootPage: Page) {
this.rootPage = rootPage;
}
async toastWait ({message}: {message: string}){
// todo: text of toastr shows old one in the test assertion
await this.rootPage.locator('.ant-message .ant-message-notice-content', {hasText: message}).last().textContent()
.then((text) => expect(text).toContain(message));
// await this.rootPage.locator('.ant-message .ant-message-notice-content', {hasText: message}).last().waitFor({state: 'detached'});
}
async waitForResponseJson({responseSelector}:{ responseSelector: ResponseSelector }) {
await this.rootPage.waitForResponse(async (res) => {
try {
return responseSelector(await res.json());
} catch(e) {
return false;
}
});
}
}