2025-02-10 16:36:12 +08:00
|
|
|
import { PlaywrightWebPage } from '@midscene/web/playwright';
|
2024-09-29 17:16:07 +08:00
|
|
|
import { test } from './fixture';
|
2025-02-10 16:36:12 +08:00
|
|
|
import { generateExtractData, generateTestDataPath } from './utils';
|
2024-08-01 15:46:40 +08:00
|
|
|
|
2024-08-21 15:52:46 +08:00
|
|
|
function sleep(time: number) {
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
setTimeout(() => {
|
|
|
|
resolve(0);
|
|
|
|
}, time);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2025-02-10 16:36:12 +08:00
|
|
|
test('todo app', async ({ page }) => {
|
2024-09-10 11:21:44 +08:00
|
|
|
const playwrightPage = new PlaywrightWebPage(page);
|
2024-08-01 15:46:40 +08:00
|
|
|
await page.goto('https://todomvc.com/examples/react/dist/');
|
|
|
|
// Add data
|
|
|
|
await page.getByTestId('text-input').click();
|
|
|
|
await page.keyboard.type('Learn Python');
|
|
|
|
await page.keyboard.press('Enter');
|
|
|
|
await page.getByTestId('text-input').click();
|
|
|
|
await page.keyboard.type('Learn Rust');
|
|
|
|
await page.keyboard.press('Enter');
|
|
|
|
await page.getByTestId('text-input').click();
|
|
|
|
await page.keyboard.type('Learn AI');
|
|
|
|
await page.keyboard.press('Enter');
|
|
|
|
await page.getByText('Learn Rust').hover();
|
|
|
|
|
2024-09-05 20:05:19 +08:00
|
|
|
await generateExtractData(playwrightPage, generateTestDataPath('todo'));
|
2024-08-28 19:31:59 +08:00
|
|
|
await page.keyboard.type('Learn English');
|
|
|
|
await generateExtractData(
|
2024-09-05 20:05:19 +08:00
|
|
|
playwrightPage,
|
2024-08-28 19:31:59 +08:00
|
|
|
generateTestDataPath('todo-input-with-value'),
|
|
|
|
);
|
2024-08-01 15:46:40 +08:00
|
|
|
});
|
|
|
|
|
2025-02-10 16:36:12 +08:00
|
|
|
test('visualstudio code', async ({ page }) => {
|
2024-09-10 11:21:44 +08:00
|
|
|
const playwrightPage = new PlaywrightWebPage(page);
|
2024-09-05 20:05:19 +08:00
|
|
|
|
2024-08-01 15:46:40 +08:00
|
|
|
await page.goto('https://code.visualstudio.com/');
|
|
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
|
2024-09-05 20:05:19 +08:00
|
|
|
await generateExtractData(
|
|
|
|
playwrightPage,
|
|
|
|
generateTestDataPath('visualstudio'),
|
|
|
|
);
|
2024-08-01 15:46:40 +08:00
|
|
|
});
|
|
|
|
|
2025-02-10 16:36:12 +08:00
|
|
|
test('github status page', async ({ page }) => {
|
2024-09-10 11:21:44 +08:00
|
|
|
const playwrightPage = new PlaywrightWebPage(page);
|
2024-09-05 20:05:19 +08:00
|
|
|
|
2024-08-01 15:46:40 +08:00
|
|
|
await page.setViewportSize({ width: 1920, height: 1080 });
|
|
|
|
await page.goto('https://www.githubstatus.com/');
|
|
|
|
await page.waitForLoadState('networkidle');
|
2024-08-21 15:52:46 +08:00
|
|
|
await sleep(3000);
|
2024-08-01 15:46:40 +08:00
|
|
|
|
2024-09-05 20:05:19 +08:00
|
|
|
await generateExtractData(
|
|
|
|
playwrightPage,
|
|
|
|
generateTestDataPath('githubstatus'),
|
|
|
|
);
|
2024-08-01 15:46:40 +08:00
|
|
|
});
|
|
|
|
|
2024-09-09 15:57:36 +08:00
|
|
|
test('antd widget pagination', async ({ page }) => {
|
2024-09-10 11:21:44 +08:00
|
|
|
const playwrightPage = new PlaywrightWebPage(page);
|
2024-09-09 15:57:36 +08:00
|
|
|
|
|
|
|
await page.setViewportSize({ width: 1920, height: 1080 });
|
|
|
|
await page.goto('https://ant.design/components/pagination-cn');
|
|
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
await generateExtractData(
|
|
|
|
playwrightPage,
|
|
|
|
generateTestDataPath('antd-pagination'),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('antd widget - tooltip', async ({ page }) => {
|
2024-09-10 11:21:44 +08:00
|
|
|
const playwrightPage = new PlaywrightWebPage(page);
|
2024-09-09 15:57:36 +08:00
|
|
|
|
|
|
|
await page.setViewportSize({ width: 1920, height: 1080 });
|
|
|
|
await page.goto('https://ant.design/components/tooltip-cn');
|
|
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
await generateExtractData(
|
|
|
|
playwrightPage,
|
|
|
|
generateTestDataPath('antd-tooltip'),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('antd widget - carousel', async ({ page }) => {
|
2024-09-10 11:21:44 +08:00
|
|
|
const playwrightPage = new PlaywrightWebPage(page);
|
2024-09-09 15:57:36 +08:00
|
|
|
|
2025-02-21 09:56:09 +08:00
|
|
|
await page.setViewportSize({ width: 1400, height: 1080 });
|
2024-09-09 15:57:36 +08:00
|
|
|
await page.goto('https://ant.design/components/carousel-cn');
|
|
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
await generateExtractData(
|
|
|
|
playwrightPage,
|
|
|
|
generateTestDataPath('antd-carousel'),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
2025-02-27 16:44:01 +08:00
|
|
|
test('antd widget - form', async ({ page }) => {
|
|
|
|
const playwrightPage = new PlaywrightWebPage(page);
|
|
|
|
|
|
|
|
await page.setViewportSize({ width: 1400, height: 1080 });
|
|
|
|
await page.goto(
|
|
|
|
'https://ant-design.antgroup.com/components/form-cn#form-demo-register',
|
|
|
|
);
|
|
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
|
|
|
|
await generateExtractData(playwrightPage, generateTestDataPath('antd-form'));
|
|
|
|
});
|
|
|
|
|
2025-02-10 16:36:12 +08:00
|
|
|
test('heytea online order', async ({ page, ai }) => {
|
2024-09-10 11:21:44 +08:00
|
|
|
const playwrightPage = new PlaywrightWebPage(page);
|
2024-09-05 20:05:19 +08:00
|
|
|
|
2024-08-01 15:46:40 +08:00
|
|
|
page.setViewportSize({ width: 400, height: 905 });
|
|
|
|
await page.goto('https://heyteavivocity.meuu.online/home');
|
|
|
|
await page.waitForLoadState('networkidle');
|
2024-08-28 19:31:59 +08:00
|
|
|
// await page.getByText('English').nth(2).click();
|
2024-08-01 15:46:40 +08:00
|
|
|
|
2024-09-05 20:05:19 +08:00
|
|
|
await generateExtractData(
|
|
|
|
playwrightPage,
|
|
|
|
generateTestDataPath('online_order'),
|
|
|
|
);
|
2024-12-16 15:04:21 +08:00
|
|
|
});
|
|
|
|
|
2025-02-10 16:36:12 +08:00
|
|
|
test('heytea online order list (zh-cn)', async ({ page, ai }) => {
|
2024-12-16 15:04:21 +08:00
|
|
|
const playwrightPage = new PlaywrightWebPage(page);
|
|
|
|
|
|
|
|
page.setViewportSize({ width: 400, height: 905 });
|
|
|
|
await page.goto('https://heyteavivocity.meuu.online/home');
|
|
|
|
await page.evaluate('window.localStorage.setItem("LOCALE", "zh-CN")');
|
|
|
|
await page.goto('https://heyteavivocity.meuu.online/home');
|
|
|
|
await page.waitForLoadState('networkidle');
|
2024-09-29 17:16:07 +08:00
|
|
|
|
|
|
|
await ai('点击菜单文字');
|
|
|
|
await ai('向下滚动一屏幕');
|
|
|
|
|
|
|
|
await generateExtractData(
|
|
|
|
playwrightPage,
|
|
|
|
generateTestDataPath('online_order_list'),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
2025-02-10 16:36:12 +08:00
|
|
|
test('douyin', async ({ page, ai }) => {
|
2024-09-29 17:16:07 +08:00
|
|
|
const playwrightPage = new PlaywrightWebPage(page);
|
|
|
|
|
2024-10-12 12:09:25 +08:00
|
|
|
page.setViewportSize({ width: 1280, height: 800 });
|
2024-09-29 17:16:07 +08:00
|
|
|
await page.goto(
|
|
|
|
'https://www.douyin.com/user/MS4wLjABAAAAGBQf_qNRUBcWNSRCZ1o8vP_qGUC58Gsbcy1Bc1AZvfc?from_tab_name=main&modal_id=7409244439434022195&vid=7409244439434022195',
|
|
|
|
);
|
|
|
|
await page.locator('.web-login-tab-list__item').nth(1).click();
|
|
|
|
await generateExtractData(
|
|
|
|
playwrightPage,
|
|
|
|
generateTestDataPath('aweme-login'),
|
|
|
|
);
|
|
|
|
await page.locator('.douyin-login__close').click();
|
|
|
|
await page.keyboard.press('ArrowDown');
|
|
|
|
await page.waitForTimeout(2000);
|
|
|
|
await generateExtractData(playwrightPage, generateTestDataPath('aweme-play'));
|
2024-08-01 15:46:40 +08:00
|
|
|
});
|