import { test, expect, Page } from '@playwright/test'; import { strictEqual } from 'assert'; import { exec } from 'child_process'; let page: Page; let isLoginSuccessful = false; test.beforeAll(async ({ browser }) => { page = await browser.newPage(); }); test.afterAll(async () => { if (page !== undefined) { await page.close(); } }); async function login(page) { try { // Login await page.goto('http://192.168.1.62:20101/'); await expect(page).toHaveTitle(/^Sign in to /); await page.fill("input[name='username']", 'admin'); await page.fill("input[name='password']", '1234'); await page.click('id=kc-login'); await page.waitForTimeout(2000); // await page.click('id=acceptBtn'); // เข้าสู่หน้าบุคลากร await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-personnel'); await page.click('id=sub-menu-personnel'); isLoginSuccessful = true; console.log('ระบบทำการ Login'); } catch (error) { console.error('เกิดข้อผิดพลาดในการ Login', error); isLoginSuccessful = false; } } test('Login', async () => { await login(page); }); test('ดูรายละเอียดพนักงาน', async () => { if (!isLoginSuccessful) { await login(page); } try { await page.click("(//div[@role='tab'])[2]"); try { await page.waitForSelector('id=btn-kebab-action-employeem', { state: 'visible', }); await page.click('id=btn-kebab-action-employeem'); await page.click('id=btn-kebab-view-detail-employeem'); const detailTitle = page.locator("//span[text()='ธรรมรงด์ ดำรงธรรม']"); await expect(detailTitle).toHaveText('ธรรมรงด์ ดำรงธรรม'); console.log('ตรวจสอบรายละเอียดพนักงานถูกต้อง'); } catch (error) { console.log('เกิดข้อผิดพลาดในการทดสอบ'); throw error; } await page.waitForTimeout(2000); await page.click('id=btn-info-close'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } }); test('ดูรายละเอียดพนักงานส่งเอกสาร', async () => { if (!isLoginSuccessful) { await login(page); } try { await page.click("(//div[@role='tab'])[3]"); await page.click('id=btn-kebab-action-courierw'); await page.click('id=btn-kebab-view-detail-courierw'); const detailTitle = page.locator("//span[text()='มาตา ลดา']"); await expect(detailTitle).toHaveText('มาตา ลดา'); console.log('ตรวจสอบรายละเอียดพนักงานส่งเอกสารถูกต้อง'); } catch (error) { console.log('เกิดข้อผิดพลาดในการทดสอบ'); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); await page.click('id=btn-info-close'); }); test('ดูรายละเอียดตัวแทน', async () => { if (!isLoginSuccessful) { await login(page); } try { await page.click("(//div[@role='tab'])[4]"); await page.click('id=btn-kebab-action-delegatem'); await page.click('id=btn-kebab-view-detail-delegatem'); const detailTitle = page.locator("//span[text()='อาคม พลัง']"); await expect(detailTitle).toHaveText('อาคม พลัง'); console.log('ตรวจสอบรายละเอียดตัวแทนถูกต้อง'); } catch (error) { console.log('เกิดข้อผิดพลาดในการทดสอบ'); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); await page.click('id=btn-info-close'); }); test('ดูรายละเอียดเอเจนซี่', async () => { if (!isLoginSuccessful) { await login(page); } try { await page.click("(//div[@role='tab'])[5]"); await page.click('id=btn-kebab-action-agencyw'); await page.waitForSelector('id=btn-kebab-view-detail-agencyw', { state: 'visible', }); await page.click('id=btn-kebab-view-detail-agencyw'); const detailTitle = await page.locator("//span[text()='ธิดา งามตา']"); await expect(detailTitle).toHaveText('ธิดา งามตา'); console.log('ตรวจสอบรายละเอียดเอเจนซี่ถูกต้อง'); } catch (error) { console.log('เกิดข้อผิดพลาดในการทดสอบ'); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); await page.click('id=btn-info-close'); }); // ---------------------------------- รูปแบบการ์ด ----------------------------// test('ดูรายละเอียดพนักงานในรูปแบบการ์ด', async () => { if (!isLoginSuccessful) { await login(page); } try { await page.reload(); await page.click("//button[@aria-pressed='false']"); await page.click("(//div[@role='tab'])[2]"); const namePersonal = page.locator( "//div[normalize-space(text())='ธรรมรงด์ ดำรงธรรม']", ); await expect(namePersonal).toHaveText('ธรรมรงด์ ดำรงธรรม'); console.log('ตรวจสอบรายละเอียดพนักงานถูกต้อง'); } catch (error) { console.log('เกิดข้อผิดพลาดในการทดสอบ'); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); }); test('ดูรายละเอียดพนักงานส่งเอกสารในรูปแบบการ์ด', async () => { if (!isLoginSuccessful) { await login(page); } try { await page.click("(//div[@role='tab'])[3]"); const namePersonal = page.locator( "//div[normalize-space(text())='มาตา ลดา']", ); await expect(namePersonal).toHaveText('มาตา ลดา'); console.log('ตรวจสอบรายละเอียดพนักงานถูกต้อง'); } catch (error) { console.log('เกิดข้อผิดพลาดในการทดสอบ'); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); }); test('ดูรายละเอียดตัวแทนในรูปแบบการ์ด', async () => { if (!isLoginSuccessful) { await login(page); } try { await page.click("(//div[@role='tab'])[4]"); const namePersonal = page.locator( "//div[normalize-space(text())='อาคม พลัง']", ); await expect(namePersonal).toHaveText('อาคม พลัง'); console.log('ตรวจสอบรายละเอียดตัวแทนถูกต้อง'); } catch (error) { console.log('เกิดข้อผิดพลาดในการทดสอบ'); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); }); test('ดูรายละเอียดเอเจนซี่ในรูปแบบการ์ด', async () => { if (!isLoginSuccessful) { await login(page); } try { await page.click("(//div[@role='tab'])[5]"); const namePersonal = page.locator( "//div[normalize-space(text())='ธิดา งามตา']", ); await expect(namePersonal).toHaveText('ธิดา งามตา'); console.log('ตรวจสอบรายละเอียดเอเจนซี่ถูกต้อง'); } catch (error) { console.log('เกิดข้อผิดพลาดในการทดสอบ'); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); });