68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { test: base, expect, devices } = require('@playwright/test');
 | |
| const zhbAuthFile = '.auth/zhb.json';
 | |
| const zhbAdminAuthFile = '.auth/zhb_admin.json';
 | |
| const test = base.extend({
 | |
|   /**
 | |
|    * @type {import('@playwright/test').Page}
 | |
|    */
 | |
|   zhbPage: async ({ browser, baseURL }, use) => {
 | |
|     const context = await browser.newContext({
 | |
|       storageState: zhbAuthFile,
 | |
|     });
 | |
|     const page = await context.newPage();
 | |
|     await page.goto(baseURL);
 | |
|     console.log(baseURL);
 | |
| 
 | |
|     await use(page);
 | |
| 
 | |
|     await page.close();
 | |
|     await context.close();
 | |
|   },
 | |
|   /**
 | |
|    * @type {import('@playwright/test').Page}
 | |
|    */
 | |
|   zhbAdminPage: async ({ browser }, use) => {
 | |
|     const baseURL = process.env.ZHB_ADMIN_URL;
 | |
|     const account = process.env.ZHB_ACCOUNT;
 | |
|     const password = process.env.ZHB_PASSWORD;
 | |
|     const context = await browser.newContext({
 | |
|       storageState: zhbAdminAuthFile,
 | |
|     });
 | |
|     const page = await context.newPage();
 | |
|     await page.goto(baseURL);
 | |
|     console.log(baseURL);
 | |
| 
 | |
|     await page.getByPlaceholder('账户').fill(account);
 | |
|     await page.getByPlaceholder('密码').fill(password);
 | |
|     await page.getByRole('button', { name: '登 录' }).click();
 | |
|     await expect(page.locator('a').filter({ hasText: /^收银$/ })).toBeVisible();
 | |
| 
 | |
|     await use(page);
 | |
| 
 | |
|     await page.close();
 | |
|     await context.close();
 | |
|   },
 | |
|   /**
 | |
|    * @type {import('@playwright/test').Page}
 | |
|    */
 | |
|   h5Page: async ({ browser }, use) => {
 | |
|     const baseURL = process.env.ZHB_H5_URL;
 | |
|     const iPhone = devices['iPhone 14'];
 | |
|     const context = await browser.newContext({
 | |
|       ...iPhone,
 | |
|       storageState: undefined,
 | |
|       hasTouch: true,
 | |
|       isMobile: true, // 设置为移动设备
 | |
|       viewport: iPhone.viewport, // 使用 iPhone 的视口配置
 | |
|     });
 | |
|     const page = await context.newPage();
 | |
|     await page.goto(baseURL);
 | |
|     await use(page);
 | |
|   },
 | |
| });
 | |
| 
 | |
| module.exports = {
 | |
|   test,
 | |
|   expect,
 | |
| };
 | 
