update test
This commit is contained in:
parent
f3982978fa
commit
c4bdd18deb
123 changed files with 12136 additions and 5001 deletions
|
|
@ -0,0 +1,961 @@
|
|||
import { test, expect, Page } from '@playwright/test';
|
||||
import { strictEqual } from 'assert';
|
||||
import exp from 'constants';
|
||||
import { prependOnceListener } from '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('Create Personnel พนักงาน ชาย', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-Add');
|
||||
|
||||
// กรอกข้อมูลพื้นฐานของบุคคลากร
|
||||
await page.click("//i[@aria-hidden='false']");
|
||||
await page.waitForSelector('id=select-hq-id', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=select-hq-id');
|
||||
await page.click("//span[normalize-space(text())='CMO00000']");
|
||||
|
||||
await page.waitForSelector('id=select-br-id', { state: 'visible' });
|
||||
await page.click('id=select-br-id');
|
||||
await page.click('id=select-br-id_4');
|
||||
await page.fill('id=input-username', 'employeem');
|
||||
await page.click('id=select-user-type');
|
||||
await page.click('id=select-user-type_0');
|
||||
await page.click('id=select-user-role');
|
||||
await page.click('id=select-user-role_2');
|
||||
// await page.click("//div[@role='option']");
|
||||
|
||||
// กรอกชื่อข้อมูลพื้นฐาน
|
||||
await page.fill('id=input-citizen-id', '1282262422820');
|
||||
await page.click(
|
||||
"//label[@for='form-dialog-personnel-select-prefix-name']",
|
||||
);
|
||||
await page.click('id=form-dialog-personnel-select-prefix-name_0');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name', 'ธรรมรงด์');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name', 'ดำรงธรรม');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name-en', 'Thamrong');
|
||||
await page.fill(
|
||||
'id=form-dialog-personnel-input-last-name-en',
|
||||
'Dumrongtum',
|
||||
);
|
||||
await page.fill('id=form-dialog-personnel-input-telephone', '08422622282');
|
||||
await page.fill(
|
||||
'id=form-dialog-personnel-input-email',
|
||||
'employeem@mail.com',
|
||||
);
|
||||
|
||||
// เลือกเพศ
|
||||
await page.click('id=form-dialog-personnel-select-gender');
|
||||
await page.click("//span[text()='ชาย']");
|
||||
|
||||
// เลือกวันเกิด
|
||||
await page.click('id=form-dialog-personnel-input-birth-date');
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2000']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2000-01-02']/div[1]");
|
||||
|
||||
// วันออกบัตร
|
||||
await page.click(
|
||||
"(//input[@id='form-dialog-personnel-input-citizen-issue'])[1]",
|
||||
);
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2010']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2010-01-02']/div[1]");
|
||||
|
||||
// กรอกที่อยู่
|
||||
await page.fill('id=drawer-info-personnel-input-address-no', '20/1');
|
||||
await page.click('id=drawer-info-personnel-select-province');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-province_6', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-province_6');
|
||||
await page.click('id=drawer-info-personnel-select-district');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-district_2', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-district_2');
|
||||
await page.click('id=drawer-info-personnel-select-sub-district');
|
||||
await page.waitForSelector(
|
||||
'id=drawer-info-personnel-select-sub-district_1',
|
||||
{
|
||||
state: 'visible',
|
||||
},
|
||||
);
|
||||
await page.click('id=drawer-info-personnel-select-sub-district_1');
|
||||
|
||||
// กรอกที่อยู่ภาษาอังกฤษ
|
||||
await page.fill('id=drawer-info-personnel-input-address-en', '20/01');
|
||||
|
||||
// กรอกข้อมูลการทำงาน
|
||||
await page.fill('id=input-regis-no', '2822282222421');
|
||||
await page.click('id=input-start-date');
|
||||
await page.click("//div[text()='11']");
|
||||
await page.click('id=input-retire-date');
|
||||
await page.click("//div[text()='21']");
|
||||
|
||||
// กดปุ่มเพื่อสร้างบุคคลากร
|
||||
await page.click('id=btn-info-basic-save');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// ดึงข้อมูลจาก Locator และนำ .textContent() เพื่อดึงมาแต่ข้อความจริง ๆ
|
||||
await page.waitForSelector;
|
||||
const displayNameLocator = page.locator(
|
||||
"//div[normalize-space(text())='ธรรมรงด์ ดำรงธรรม']",
|
||||
);
|
||||
|
||||
const displayName = (await displayNameLocator.textContent())?.trim() || '';
|
||||
|
||||
// ตรวจสอบข้อมูลที่ดึงออกมา
|
||||
expect(displayName).toBe('ธรรมรงด์ ดำรงธรรม');
|
||||
console.log(displayName);
|
||||
|
||||
console.log('ตรวจสอบการสร้างพนักงานชายถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
await page.waitForTimeout(2000);
|
||||
});
|
||||
|
||||
test('Create Personnel พนักงาน หญิง', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกข้อมูลพื้นฐานของบุคคลากร
|
||||
await page.click("//i[@aria-hidden='false']");
|
||||
await page.waitForSelector('id=select-hq-id', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=select-hq-id');
|
||||
await page.click("//span[normalize-space(text())='CMO00000']");
|
||||
|
||||
await page.waitForSelector('id=select-br-id', { state: 'visible' });
|
||||
await page.click('id=select-br-id');
|
||||
await page.click('id=select-br-id_4');
|
||||
await page.fill('id=input-username', 'employeew');
|
||||
await page.click('id=select-user-role');
|
||||
await page.click('id=select-user-role_6');
|
||||
// await page.click("//div[@role='option']");
|
||||
|
||||
// กรอกชื่อข้อมูลพื้นฐาน
|
||||
await page.fill('id=input-citizen-id', '1282262422820');
|
||||
await page.click(
|
||||
"//label[@for='form-dialog-personnel-select-prefix-name']",
|
||||
);
|
||||
await page.click('id=form-dialog-personnel-select-prefix-name_0');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name', 'อารยา');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name', 'มาลา');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name-en', 'Araya');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name-en', 'Mala');
|
||||
await page.fill('id=form-dialog-personnel-input-telephone', '08422622282');
|
||||
await page.fill(
|
||||
'id=form-dialog-personnel-input-email',
|
||||
'employeew@mail.com',
|
||||
);
|
||||
|
||||
// เลือกเพศ
|
||||
await page.click('id=form-dialog-personnel-select-gender');
|
||||
await page.click("//span[text()='หญิง']");
|
||||
|
||||
// เลือกวันเกิด
|
||||
await page.click('id=form-dialog-personnel-input-birth-date');
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2001']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2001-01-02']/div[1]");
|
||||
|
||||
// วันออกบัตร
|
||||
await page.click(
|
||||
"(//input[@id='form-dialog-personnel-input-citizen-issue'])[1]",
|
||||
);
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2011']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2011-01-02']/div[1]");
|
||||
|
||||
// กรอกที่อยู่
|
||||
await page.fill('id=drawer-info-personnel-input-address-no', '20/1');
|
||||
await page.click('id=drawer-info-personnel-select-province');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-province_6', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-province_6');
|
||||
await page.click('id=drawer-info-personnel-select-district');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-district_2', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-district_2');
|
||||
await page.click('id=drawer-info-personnel-select-sub-district');
|
||||
await page.waitForSelector(
|
||||
'id=drawer-info-personnel-select-sub-district_1',
|
||||
{
|
||||
state: 'visible',
|
||||
},
|
||||
);
|
||||
await page.click('id=drawer-info-personnel-select-sub-district_1');
|
||||
|
||||
// กรอกที่อยู่ภาษาอังกฤษ
|
||||
await page.fill('id=drawer-info-personnel-input-address-en', '20/01');
|
||||
|
||||
// กรอกข้อมูลการทำงาน
|
||||
await page.fill('id=input-regis-no', '2822282222421');
|
||||
await page.click('id=input-start-date');
|
||||
await page.click("//div[text()='11']");
|
||||
await page.click('id=input-retire-date');
|
||||
await page.click("//div[text()='21']");
|
||||
|
||||
// กดปุ่มเพื่อสร้างบุคคลากร
|
||||
await page.click('id=btn-info-basic-save');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// ดึงข้อมูลจาก Locator และนำ .textContent() เพื่อดึงมาแต่ข้อความจริง ๆ
|
||||
const displayNameLocator = page.locator(
|
||||
"//div[normalize-space(text())='อารยา มาลา']",
|
||||
);
|
||||
const displayName = (await displayNameLocator.textContent())?.trim();
|
||||
|
||||
// ตรวจสอบข้อมูลที่ดึงออกมา
|
||||
expect(displayName).toBe('อารยา มาลา');
|
||||
|
||||
console.log('ตรวจสอบการสร้างพนักงานหญิงถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel พนักงานส่งเอกสาร หญิง', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click("(//div[@role='tab'])[3]");
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกข้อมูลพื้นฐานของบุคคลากร
|
||||
await page.click("//i[@aria-hidden='false']");
|
||||
await page.waitForSelector('id=select-hq-id', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=select-hq-id');
|
||||
await page.click("//span[normalize-space(text())='CMO00000']");
|
||||
|
||||
await page.waitForSelector('id=select-br-id', { state: 'visible' });
|
||||
await page.click('id=select-br-id');
|
||||
await page.click('id=select-br-id_4');
|
||||
await page.fill('id=input-username', 'courierw');
|
||||
await page.click('id=select-user-role');
|
||||
await page.click('id=select-user-role_6');
|
||||
// await page.click("//div[@role='option']");
|
||||
|
||||
// กรอกชื่อข้อมูลพื้นฐาน
|
||||
await page.fill('id=input-citizen-id', '1282262422820');
|
||||
await page.click(
|
||||
"//label[@for='form-dialog-personnel-select-prefix-name']",
|
||||
);
|
||||
await page.click('id=form-dialog-personnel-select-prefix-name_0');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name', 'มาตา');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name', 'ลดา');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name-en', 'Mata');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name-en', 'Lada');
|
||||
await page.fill('id=form-dialog-personnel-input-telephone', '08422622282');
|
||||
await page.fill(
|
||||
'id=form-dialog-personnel-input-email',
|
||||
'courierw@mail.com',
|
||||
);
|
||||
|
||||
// เลือกเพศ
|
||||
await page.click('id=form-dialog-personnel-select-gender');
|
||||
await page.click("//span[text()='หญิง']");
|
||||
|
||||
// เลือกวันเกิด
|
||||
await page.click('id=form-dialog-personnel-input-birth-date');
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2002']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2002-01-02']/div[1]");
|
||||
|
||||
// วันออกบัตร
|
||||
await page.click(
|
||||
"(//input[@id='form-dialog-personnel-input-citizen-issue'])[1]",
|
||||
);
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2012']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2012-01-02']/div[1]");
|
||||
|
||||
// กรอกที่อยู่
|
||||
await page.fill('id=drawer-info-personnel-input-address-no', '20/1');
|
||||
await page.click('id=drawer-info-personnel-select-province');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-province_6', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-province_6');
|
||||
await page.click('id=drawer-info-personnel-select-district');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-district_2', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-district_2');
|
||||
await page.click('id=drawer-info-personnel-select-sub-district');
|
||||
await page.waitForSelector(
|
||||
'id=drawer-info-personnel-select-sub-district_1',
|
||||
{
|
||||
state: 'visible',
|
||||
},
|
||||
);
|
||||
await page.click('id=drawer-info-personnel-select-sub-district_1');
|
||||
|
||||
// กรอกที่อยู่ภาษาอังกฤษ
|
||||
await page.fill('id=drawer-info-personnel-input-address-en', '20/01');
|
||||
|
||||
// กรอกข้อมูลการทำงาน
|
||||
await page.fill('id=input-regis-no', '2822282222421');
|
||||
await page.click('id=input-start-date');
|
||||
await page.click("//div[text()='11']");
|
||||
await page.click('id=input-retire-date');
|
||||
await page.click("//div[text()='21']");
|
||||
|
||||
// กดปุ่มเพื่อสร้างบุคคลากร
|
||||
await page.click('id=btn-info-basic-save');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// ดึงข้อมูลจาก Locator และนำ .textContent() เพื่อดึงมาแต่ข้อความจริง ๆ
|
||||
const displayNameLocator = page.locator(
|
||||
"//div[normalize-space(text())='มาตา ลดา']",
|
||||
);
|
||||
const displayName = (await displayNameLocator.textContent())?.trim();
|
||||
|
||||
// ตรวจสอบข้อมูลที่ดึงออกมา
|
||||
expect(displayName).toBe('มาตา ลดา');
|
||||
|
||||
console.log('ตรวจสอบการสร้างพนักงานส่งเอกสารหญิงถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel พนักงานส่งเอกสาร ชาย', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกข้อมูลพื้นฐานของบุคคลากร
|
||||
await page.click("//i[@aria-hidden='false']");
|
||||
await page.waitForSelector('id=select-hq-id', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=select-hq-id');
|
||||
await page.click("//span[normalize-space(text())='CMO00000']");
|
||||
|
||||
await page.waitForSelector('id=select-br-id', { state: 'visible' });
|
||||
await page.click('id=select-br-id');
|
||||
await page.click('id=select-br-id_4');
|
||||
await page.fill('id=input-username', 'courierm');
|
||||
await page.click('id=select-user-role');
|
||||
await page.click('id=select-user-role_6');
|
||||
// await page.click("//div[@role='option']");
|
||||
|
||||
// กรอกชื่อข้อมูลพื้นฐาน
|
||||
await page.fill('id=input-citizen-id', '1282262422820');
|
||||
await page.click(
|
||||
"//label[@for='form-dialog-personnel-select-prefix-name']",
|
||||
);
|
||||
await page.click('id=form-dialog-personnel-select-prefix-name_0');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name', 'ธันวา');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name', 'มานา');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name-en', 'Thanwa');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name-en', 'Mana');
|
||||
await page.fill('id=form-dialog-personnel-input-telephone', '08422622282');
|
||||
await page.fill(
|
||||
'id=form-dialog-personnel-input-email',
|
||||
'courierm@mail.com',
|
||||
);
|
||||
|
||||
// เลือกเพศ
|
||||
await page.click('id=form-dialog-personnel-select-gender');
|
||||
await page.click("//span[text()='ชาย']");
|
||||
|
||||
// เลือกวันเกิด
|
||||
await page.click('id=form-dialog-personnel-input-birth-date');
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2003']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2003-01-02']/div[1]");
|
||||
|
||||
// วันออกบัตร
|
||||
await page.click(
|
||||
"(//input[@id='form-dialog-personnel-input-citizen-issue'])[1]",
|
||||
);
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2013']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2013-01-02']/div[1]");
|
||||
|
||||
// กรอกที่อยู่
|
||||
await page.fill('id=drawer-info-personnel-input-address-no', '20/1');
|
||||
await page.click('id=drawer-info-personnel-select-province');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-province_6', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-province_6');
|
||||
await page.click('id=drawer-info-personnel-select-district');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-district_2', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-district_2');
|
||||
await page.click('id=drawer-info-personnel-select-sub-district');
|
||||
await page.waitForSelector(
|
||||
'id=drawer-info-personnel-select-sub-district_1',
|
||||
{
|
||||
state: 'visible',
|
||||
},
|
||||
);
|
||||
await page.click('id=drawer-info-personnel-select-sub-district_1');
|
||||
|
||||
// กรอกที่อยู่ภาษาอังกฤษ
|
||||
await page.fill('id=drawer-info-personnel-input-address-en', '20/01');
|
||||
|
||||
// กรอกข้อมูลการทำงาน
|
||||
await page.fill('id=input-regis-no', '2822282222421');
|
||||
await page.click('id=input-start-date');
|
||||
await page.click("//div[text()='11']");
|
||||
await page.click('id=input-retire-date');
|
||||
await page.click("//div[text()='21']");
|
||||
|
||||
// กดปุ่มเพื่อสร้างบุคคลากร
|
||||
await page.click('id=btn-info-basic-save');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// ดึงข้อมูลจาก Locator และนำ .textContent() เพื่อดึงมาแต่ข้อความจริง ๆ
|
||||
const displayNameLocator = page.locator(
|
||||
"//div[normalize-space(text())='ธันวา มานา']",
|
||||
);
|
||||
const displayName = (await displayNameLocator.textContent())?.trim();
|
||||
|
||||
// ตรวจสอบข้อมูลที่ดึงออกมา
|
||||
expect(displayName).toBe('ธันวา มานา');
|
||||
|
||||
console.log('ตรวจสอบการสร้างพนักงานส่งเอกสารชายถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel ตัวแทน ชาย', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click("(//div[@role='tab'])[4]");
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกข้อมูลพื้นฐานของบุคคลากร
|
||||
await page.click("//i[@aria-hidden='false']");
|
||||
await page.waitForSelector('id=select-hq-id', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=select-hq-id');
|
||||
await page.click("//span[normalize-space(text())='CMO00000']");
|
||||
|
||||
await page.waitForSelector('id=select-br-id', { state: 'visible' });
|
||||
await page.click('id=select-br-id');
|
||||
await page.click('id=select-br-id_4');
|
||||
await page.fill('id=input-username', 'delegatem');
|
||||
await page.click('id=select-user-role');
|
||||
await page.click('id=select-user-role_8');
|
||||
// await page.click("//div[@role='option']");
|
||||
|
||||
// กรอกชื่อข้อมูลพื้นฐาน
|
||||
await page.fill('id=input-citizen-id', '1282262422820');
|
||||
await page.click(
|
||||
"//label[@for='form-dialog-personnel-select-prefix-name']",
|
||||
);
|
||||
await page.click('id=form-dialog-personnel-select-prefix-name_0');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name', 'อาคม');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name', 'พลัง');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name-en', 'Akom');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name-en', 'Palang');
|
||||
await page.fill('id=form-dialog-personnel-input-telephone', '08422622282');
|
||||
await page.fill(
|
||||
'id=form-dialog-personnel-input-email',
|
||||
'delegatem@mail.com',
|
||||
);
|
||||
|
||||
// เลือกเพศ
|
||||
await page.click('id=form-dialog-personnel-select-gender');
|
||||
await page.click("//span[text()='ชาย']");
|
||||
|
||||
// เลือกวันเกิด
|
||||
await page.click('id=form-dialog-personnel-input-birth-date');
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2004']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2004-01-02']/div[1]");
|
||||
|
||||
// วันออกบัตร
|
||||
await page.click(
|
||||
"(//input[@id='form-dialog-personnel-input-citizen-issue'])[1]",
|
||||
);
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2014']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2014-01-02']/div[1]");
|
||||
|
||||
// กรอกที่อยู่
|
||||
await page.fill('id=drawer-info-personnel-input-address-no', '20/1');
|
||||
await page.click('id=drawer-info-personnel-select-province');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-province_6', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-province_6');
|
||||
await page.click('id=drawer-info-personnel-select-district');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-district_2', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-district_2');
|
||||
await page.click('id=drawer-info-personnel-select-sub-district');
|
||||
await page.waitForSelector(
|
||||
'id=drawer-info-personnel-select-sub-district_1',
|
||||
{
|
||||
state: 'visible',
|
||||
},
|
||||
);
|
||||
await page.click('id=drawer-info-personnel-select-sub-district_1');
|
||||
|
||||
// กรอกที่อยู่ภาษาอังกฤษ
|
||||
await page.fill('id=drawer-info-personnel-input-address-en', '20/01');
|
||||
|
||||
// กรอกข้อมูลการทำงาน
|
||||
await page.fill('id=input-discount-condition', 'ทดสอบข้อมูลการทำงาน');
|
||||
|
||||
// กดปุ่มเพื่อสร้างบุคคลากร
|
||||
await page.click('id=btn-info-basic-save');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// ดึงข้อมูลจาก Locator และนำ .textContent() เพื่อดึงมาแต่ข้อความจริง ๆ
|
||||
const displayNameLocator = page.locator(
|
||||
"//div[normalize-space(text())='อาคม พลัง']",
|
||||
);
|
||||
const displayName = (await displayNameLocator.textContent())?.trim();
|
||||
|
||||
// ตรวจสอบข้อมูลที่ดึงออกมา
|
||||
expect(displayName).toBe('อาคม พลัง');
|
||||
|
||||
console.log('ตรวจสอบการสร้างตัวแทนชายถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel ตัวแทน หญิง', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกข้อมูลพื้นฐานของบุคคลากร
|
||||
await page.click("//i[@aria-hidden='false']");
|
||||
await page.waitForSelector('id=select-hq-id', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=select-hq-id');
|
||||
await page.click("//span[normalize-space(text())='CMO00000']");
|
||||
|
||||
await page.waitForSelector('id=select-br-id', { state: 'visible' });
|
||||
await page.click('id=select-br-id');
|
||||
await page.click('id=select-br-id_4');
|
||||
await page.fill('id=input-username', 'delegatew');
|
||||
await page.click('id=select-user-role');
|
||||
await page.click('id=select-user-role_10');
|
||||
// await page.click("//div[@role='option']");
|
||||
|
||||
// กรอกชื่อข้อมูลพื้นฐาน
|
||||
await page.fill('id=input-citizen-id', '1282262422820');
|
||||
await page.click(
|
||||
"//label[@for='form-dialog-personnel-select-prefix-name']",
|
||||
);
|
||||
await page.click('id=form-dialog-personnel-select-prefix-name_0');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name', 'สโรชา');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name', 'มีนา');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name-en', 'Sarocha');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name-en', 'Mena');
|
||||
await page.fill('id=form-dialog-personnel-input-telephone', '08422622282');
|
||||
await page.fill(
|
||||
'id=form-dialog-personnel-input-email',
|
||||
'delegatew@mail.com',
|
||||
);
|
||||
|
||||
// เลือกเพศ
|
||||
await page.click('id=form-dialog-personnel-select-gender');
|
||||
await page.click("//span[text()='หญิง']");
|
||||
|
||||
// เลือกวันเกิด
|
||||
await page.click('id=form-dialog-personnel-input-birth-date');
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2005']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2005-01-02']/div[1]");
|
||||
|
||||
// วันออกบัตร
|
||||
await page.click(
|
||||
"(//input[@id='form-dialog-personnel-input-citizen-issue'])[1]",
|
||||
);
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2015']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2015-01-02']/div[1]");
|
||||
|
||||
// กรอกที่อยู่
|
||||
await page.fill('id=drawer-info-personnel-input-address-no', '20/1');
|
||||
await page.click('id=drawer-info-personnel-select-province');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-province_6', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-province_6');
|
||||
await page.click('id=drawer-info-personnel-select-district');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-district_2', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-district_2');
|
||||
await page.click('id=drawer-info-personnel-select-sub-district');
|
||||
await page.waitForSelector(
|
||||
'id=drawer-info-personnel-select-sub-district_1',
|
||||
{
|
||||
state: 'visible',
|
||||
},
|
||||
);
|
||||
await page.click('id=drawer-info-personnel-select-sub-district_1');
|
||||
|
||||
// กรอกที่อยู่ภาษาอังกฤษ
|
||||
await page.fill('id=drawer-info-personnel-input-address-en', '20/01');
|
||||
|
||||
// กรอกข้อมูลการทำงาน
|
||||
await page.fill('id=input-discount-condition', 'ทดสอบข้อมูลการทำงาน');
|
||||
|
||||
// กดปุ่มเพื่อสร้างบุคคลากร
|
||||
await page.click('id=btn-info-basic-save');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// ดึงข้อมูลจาก Locator และนำ .textContent() เพื่อดึงมาแต่ข้อความจริง ๆ
|
||||
const displayNameLocator = page.locator(
|
||||
"//div[normalize-space(text())='สโรชา มีนา']",
|
||||
);
|
||||
const displayName = (await displayNameLocator.textContent())?.trim();
|
||||
|
||||
// ตรวจสอบข้อมูลที่ดึงออกมา
|
||||
expect(displayName).toBe('สโรชา มีนา');
|
||||
|
||||
console.log('ตรวจสอบการสร้างตัวแทนหญิงถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel เอเจนซี่ หญิง', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click("(//div[@role='tab'])[5]");
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกข้อมูลพื้นฐานของบุคคลากร
|
||||
await page.click("//i[@aria-hidden='false']");
|
||||
await page.waitForSelector('id=select-hq-id', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=select-hq-id');
|
||||
await page.click("//span[normalize-space(text())='CMO00000']");
|
||||
|
||||
await page.waitForSelector('id=select-br-id', { state: 'visible' });
|
||||
await page.click('id=select-br-id');
|
||||
await page.click('id=select-br-id_4');
|
||||
await page.fill('id=input-username', 'agencyw');
|
||||
await page.click('id=select-user-role');
|
||||
await page.click('id=select-user-role_2');
|
||||
// await page.click("//div[@role='option']");
|
||||
|
||||
// กรอกชื่อข้อมูลพื้นฐาน
|
||||
await page.fill('id=input-citizen-id', '1282262422820');
|
||||
await page.click(
|
||||
"//label[@for='form-dialog-personnel-select-prefix-name']",
|
||||
);
|
||||
await page.click('id=form-dialog-personnel-select-prefix-name_0');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name', 'ธิดา');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name', 'งามตา');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name-en', 'Thida');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name-en', 'Yamta');
|
||||
await page.fill('id=form-dialog-personnel-input-telephone', '08422622282');
|
||||
await page.fill('id=form-dialog-personnel-input-email', 'agencyw@mail.com');
|
||||
|
||||
// เลือกเพศ
|
||||
await page.click('id=form-dialog-personnel-select-gender');
|
||||
await page.click("//span[text()='หญิง']");
|
||||
|
||||
// เลือกวันเกิด
|
||||
await page.click('id=form-dialog-personnel-input-birth-date');
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2006']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2006-01-02']/div[1]");
|
||||
|
||||
// วันออกบัตร
|
||||
await page.click(
|
||||
"(//input[@id='form-dialog-personnel-input-citizen-issue'])[1]",
|
||||
);
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2016']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2016-01-02']/div[1]");
|
||||
|
||||
// กรอกที่อยู่
|
||||
await page.fill('id=drawer-info-personnel-input-address-no', '20/1');
|
||||
await page.click('id=drawer-info-personnel-select-province');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-province_6', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-province_6');
|
||||
await page.click('id=drawer-info-personnel-select-district');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-district_2', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-district_2');
|
||||
await page.click('id=drawer-info-personnel-select-sub-district');
|
||||
await page.waitForSelector(
|
||||
'id=drawer-info-personnel-select-sub-district_1',
|
||||
{
|
||||
state: 'visible',
|
||||
},
|
||||
);
|
||||
await page.click('id=drawer-info-personnel-select-sub-district_1');
|
||||
|
||||
// กรอกที่อยู่ภาษาอังกฤษ
|
||||
await page.fill('id=drawer-info-personnel-input-address-en', '20/01');
|
||||
|
||||
// กรอกข้อมูลการทำงาน
|
||||
await page.click('id=input-source-nationality');
|
||||
await page.click("(//div[@role='option'])[1]");
|
||||
await page.click('id=input-import-nationality');
|
||||
await page.click("(//div[@role='option'])[1]");
|
||||
await page.click('id=select-trainig-place');
|
||||
await page.click("//span[text()='สถานที่อบรมแรงงานเมียนมา-แม่สอด จ.ตาก']");
|
||||
await page.fill('id=input-checkpoint', 'แม่สอด');
|
||||
await page.fill('id=input-checkpoint-en', 'Maesod');
|
||||
|
||||
// กดปุ่มเพื่อสร้างบุคคลากร
|
||||
await page.click('id=btn-info-basic-save');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// ดึงข้อมูลจาก Locator และนำ .textContent() เพื่อดึงมาแต่ข้อความจริง ๆ
|
||||
const displayNameLocator = page.locator(
|
||||
"//div[normalize-space(text())='ธิดา งามตา']",
|
||||
);
|
||||
const displayName = (await displayNameLocator.textContent())?.trim();
|
||||
|
||||
// ตรวจสอบข้อมูลที่ดึงออกมา
|
||||
expect(displayName).toBe('ธิดา งามตา');
|
||||
|
||||
console.log('ตรวจสอบการสร้างเอเจนซี่หญิงถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel เอเจนซี่ ชาย', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกข้อมูลพื้นฐานของบุคคลากร
|
||||
await page.click("//i[@aria-hidden='false']");
|
||||
await page.waitForSelector('id=select-hq-id', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=select-hq-id');
|
||||
await page.click("//span[normalize-space(text())='CMO00000']");
|
||||
|
||||
await page.waitForSelector('id=select-br-id', { state: 'visible' });
|
||||
await page.click('id=select-br-id');
|
||||
await page.click('id=select-br-id_4');
|
||||
await page.fill('id=input-username', 'agencym');
|
||||
await page.click('id=select-user-role');
|
||||
await page.click('id=select-user-role_8');
|
||||
// await page.click("//div[@role='option']");
|
||||
|
||||
// กรอกชื่อข้อมูลพื้นฐาน
|
||||
await page.fill('id=input-citizen-id', '1282262422820');
|
||||
await page.click(
|
||||
"//label[@for='form-dialog-personnel-select-prefix-name']",
|
||||
);
|
||||
await page.click('id=form-dialog-personnel-select-prefix-name_0');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name', 'อันดา');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name', 'ธรรมา');
|
||||
await page.fill('id=form-dialog-personnel-input-first-name-en', 'Aunda');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name-en', 'Thamma');
|
||||
await page.fill('id=form-dialog-personnel-input-telephone', '08422622282');
|
||||
await page.fill('id=form-dialog-personnel-input-email', 'agencym@mail.com');
|
||||
|
||||
// เลือกเพศ
|
||||
await page.click('id=form-dialog-personnel-select-gender');
|
||||
await page.click("//span[text()='ชาย']");
|
||||
|
||||
// เลือกวันเกิด
|
||||
await page.click('id=form-dialog-personnel-input-birth-date');
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2007']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2007-01-02']/div[1]");
|
||||
|
||||
// วันออกบัตร
|
||||
await page.click(
|
||||
"(//input[@id='form-dialog-personnel-input-citizen-issue'])[1]",
|
||||
);
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]");
|
||||
await page.click("//div[text()='2017']");
|
||||
await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]");
|
||||
await page.click("//div[text()='ม.ค.']");
|
||||
await page.click("//div[@id='2017-01-02']/div[1]");
|
||||
|
||||
// กรอกที่อยู่
|
||||
await page.fill('id=drawer-info-personnel-input-address-no', '20/1');
|
||||
await page.click('id=drawer-info-personnel-select-province');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-province_6', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-province_6');
|
||||
await page.click('id=drawer-info-personnel-select-district');
|
||||
await page.waitForSelector('id=drawer-info-personnel-select-district_2', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=drawer-info-personnel-select-district_2');
|
||||
await page.click('id=drawer-info-personnel-select-sub-district');
|
||||
await page.waitForSelector(
|
||||
'id=drawer-info-personnel-select-sub-district_1',
|
||||
{
|
||||
state: 'visible',
|
||||
},
|
||||
);
|
||||
await page.click('id=drawer-info-personnel-select-sub-district_1');
|
||||
|
||||
// กรอกที่อยู่ภาษาอังกฤษ
|
||||
await page.fill('id=drawer-info-personnel-input-address-en', '20/01');
|
||||
|
||||
// กรอกข้อมูลการทำงาน
|
||||
await page.click('id=input-source-nationality');
|
||||
await page.click("(//div[@role='option'])[1]");
|
||||
await page.click('id=input-import-nationality');
|
||||
await page.click("(//div[@role='option'])[1]");
|
||||
await page.click('id=select-trainig-place');
|
||||
await page.click("//span[text()='สถานที่อบรมแรงงานเมียนมา-แม่สอด จ.ตาก']");
|
||||
await page.fill('id=input-checkpoint', 'แม่สอด');
|
||||
await page.fill('id=input-checkpoint-en', 'Maesod');
|
||||
|
||||
// กดปุ่มเพื่อสร้างบุคคลากร
|
||||
await page.click('id=btn-info-basic-save');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// ดึงข้อมูลจาก Locator และนำ .textContent() เพื่อดึงมาแต่ข้อความจริง ๆ
|
||||
const displayNameLocator = page.locator(
|
||||
"//div[normalize-space(text())='อันดา ธรรมา']",
|
||||
);
|
||||
const displayName = (await displayNameLocator.textContent())?.trim();
|
||||
|
||||
// ตรวจสอบข้อมูลที่ดึงออกมา
|
||||
expect(displayName).toBe('อันดา ธรรมา');
|
||||
|
||||
console.log('ตรวจสอบการสร้างเอเจนซี่ชายถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,220 @@
|
|||
import { test, expect, Page } from '@playwright/test';
|
||||
import { strictEqual } from 'assert';
|
||||
import exp from 'constants';
|
||||
import { getSystemErrorMap } from 'util';
|
||||
|
||||
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');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
isLoginSuccessful = true;
|
||||
console.log('ระบบทำการ Login');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการ Login', error);
|
||||
isLoginSuccessful = false;
|
||||
}
|
||||
}
|
||||
|
||||
test('Login', async () => {
|
||||
await login(page);
|
||||
});
|
||||
|
||||
test('Create Personnel - ในกรณีที่ไม่กรอกข้อมูล', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
// เปลี่ยนภาษา
|
||||
await page.click('id=btn-change-language');
|
||||
await page.waitForSelector('id=btn-change-language-eng');
|
||||
await page.click('id=btn-change-language-eng');
|
||||
|
||||
await page.click('id=btn-add');
|
||||
|
||||
await page.click('id=btn-info-basic-save');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
const expectedErrors = [
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'This field is required.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'Please select User Type.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'Please select User Role.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'This field is required.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'This field is required.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'This field is required.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'This field is required.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'This field is required.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'Please select Birth Date.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'Please select Citizen Issue.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'This field is required.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'Please select Province.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'Please select District.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'Please select Sub-district.',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'This field is required.',
|
||||
},
|
||||
];
|
||||
|
||||
for (const error of expectedErrors) {
|
||||
const locator = page.locator(error.locator);
|
||||
await expect(locator).toHaveText(error.message);
|
||||
}
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.click('id=btn-form-close');
|
||||
console.log('การตรวจสอบการทำงานถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel - ในกรณีที่กรอกชื่อผู้ใช้งานที่ไม่ตรงกับตัวอักษรที่กำหนด', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกชื่อผู้ใช้งาน
|
||||
await page.fill('id=input-username', 'ทดสอบ');
|
||||
|
||||
const usernameError = page.locator("(//div[@role='alert'])[1]");
|
||||
|
||||
await expect(usernameError).toHaveText(
|
||||
'Only _ letters and number are allowed',
|
||||
);
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.click('id=btn-form-close');
|
||||
console.log('การตรวจสอบการทำงานถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel - ในกรณีที่กรอกชื่อและนามสกุลภาษาอังกฤษไม่ตรงตามรูปแบบ', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกชื่อผู้ใช้งาน
|
||||
await page.fill('id=form-dialog-personnel-input-first-name-en', 'ทดสอบ');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name-en', 'ทดสอบ');
|
||||
|
||||
const firstNameEnError = page.locator("(//div[@role='alert'])[1]");
|
||||
const lastNameEnError = page.locator("(//div[@role='alert'])[2]");
|
||||
|
||||
await expect(firstNameEnError).toHaveText('Only letters are allowed');
|
||||
await expect(lastNameEnError).toHaveText('Only letters are allowed');
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.click('id=btn-form-close');
|
||||
console.log('การตรวจสอบการทำงานถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel - ในกรณีที่กรอกอีเมลไม่ตรงรูปแบบ', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกชื่อผู้ใช้งาน
|
||||
await page.fill('id=form-dialog-personnel-input-email', 'ทดสอบ');
|
||||
|
||||
const firstNameEnError = page.locator("(//div[@role='alert'])[1]");
|
||||
|
||||
await expect(firstNameEnError).toHaveText('Invalid value.');
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.click('id=btn-form-close');
|
||||
console.log('การตรวจสอบการทำงานถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,217 @@
|
|||
import { test, expect, Page } from '@playwright/test';
|
||||
import { strictEqual } from 'assert';
|
||||
import exp from 'constants';
|
||||
|
||||
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');
|
||||
isLoginSuccessful = false;
|
||||
}
|
||||
}
|
||||
|
||||
test('Login', async () => {
|
||||
await login(page);
|
||||
});
|
||||
|
||||
test('Create Personnel - ในกรณีที่ไม่กรอกข้อมูล', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
await page.click('id=btn-info-basic-save');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
const expectedErrors = [
|
||||
{
|
||||
locator: "(//div[@role='alert'])[1]",
|
||||
message: 'จำเป็นต้องกรอกข้อมูลนี้',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[2]",
|
||||
message: 'โปรดเลือกประเภทผู้ใช้งาน',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[3]",
|
||||
message: 'โปรดเลือกสิทธิ์ผู้ใช้งาน',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[4]",
|
||||
message: 'จำเป็นต้องกรอกข้อมูลนี้',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[5]",
|
||||
message: 'จำเป็นต้องกรอกข้อมูลนี้',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[6]",
|
||||
message: 'จำเป็นต้องกรอกข้อมูลนี้',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[7]",
|
||||
message: 'จำเป็นต้องกรอกข้อมูลนี้',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[8]",
|
||||
message: 'จำเป็นต้องกรอกข้อมูลนี้',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[9]",
|
||||
message: 'โปรดเลือกวันเดือนปีเกิด',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[10]",
|
||||
message: 'โปรดเลือกวันที่ออกบัตร',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[11]",
|
||||
message: 'จำเป็นต้องกรอกข้อมูลนี้',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[12]",
|
||||
message: 'โปรดเลือกจังหวัด',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[13]",
|
||||
message: 'โปรดเลือกเขต/อำเภอ',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[14]",
|
||||
message: 'โปรดเลือกแขวง/ตำบล',
|
||||
},
|
||||
{
|
||||
locator: "(//div[@role='alert'])[15]",
|
||||
message: 'จำเป็นต้องกรอกข้อมูลนี้',
|
||||
},
|
||||
];
|
||||
|
||||
for (const error of expectedErrors) {
|
||||
const locator = page.locator(error.locator);
|
||||
await expect(locator).toHaveText(error.message);
|
||||
}
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.click('id=btn-form-close');
|
||||
console.log('การตรวจสอบการทำงานถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel - ในกรณีที่กรอกชื่อผู้ใช้งานที่ไม่ตรงกับตัวอักษรที่กำหนด', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกชื่อผู้ใช้งาน
|
||||
await page.fill('id=input-username', 'ทดสอบ');
|
||||
|
||||
const usernameError = page.locator("(//div[@role='alert'])[1]");
|
||||
|
||||
await expect(usernameError).toHaveText(
|
||||
'โปรดใช้เฉพาะ _ ตัวอักษรภาษาอังกฤษและตัวเลขเท่านั้น',
|
||||
);
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.click('id=btn-form-close');
|
||||
console.log('การตรวจสอบการทำงานถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel - ในกรณีที่กรอกชื่อและนามสกุลภาษาอังกฤษไม่ตรงตามรูปแบบ', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกชื่อผู้ใช้งาน
|
||||
await page.fill('id=form-dialog-personnel-input-first-name-en', 'ทดสอบ');
|
||||
await page.fill('id=form-dialog-personnel-input-last-name-en', 'ทดสอบ');
|
||||
|
||||
const firstNameEnError = page.locator("(//div[@role='alert'])[1]");
|
||||
const lastNameEnError = page.locator("(//div[@role='alert'])[2]");
|
||||
|
||||
await expect(firstNameEnError).toHaveText(
|
||||
'โปรดใช้เฉพาะตัวอักษรภาษาอังกฤษเท่านั้น',
|
||||
);
|
||||
await expect(lastNameEnError).toHaveText(
|
||||
'โปรดใช้เฉพาะตัวอักษรภาษาอังกฤษเท่านั้น',
|
||||
);
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.click('id=btn-form-close');
|
||||
console.log('การตรวจสอบการทำงานถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('Create Personnel - ในกรณีที่กรอกอีเมลไม่ตรงรูปแบบ', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
await page.click('id=btn-add');
|
||||
|
||||
// กรอกชื่อผู้ใช้งาน
|
||||
await page.fill('id=form-dialog-personnel-input-email', 'ทดสอบ');
|
||||
|
||||
const firstNameEnError = page.locator("(//div[@role='alert'])[1]");
|
||||
|
||||
await expect(firstNameEnError).toHaveText('ข้อมูลไม่ถูกต้อง');
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page.click('id=btn-form-close');
|
||||
console.log('การตรวจสอบการทำงานถูกต้อง');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,248 @@
|
|||
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);
|
||||
});
|
||||
|
|
@ -0,0 +1,283 @@
|
|||
import { test, expect, Page } from '@playwright/test';
|
||||
import { strictEqual } from 'assert';
|
||||
import { exec } from 'child_process';
|
||||
import { log } from 'console';
|
||||
import { writeFileSync } from 'fs';
|
||||
|
||||
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('เกิดข้อผิดพลาดในการทดสอบ', error);
|
||||
isLoginSuccessful = false;
|
||||
}
|
||||
}
|
||||
|
||||
test('Login', async () => {
|
||||
await login(page);
|
||||
});
|
||||
|
||||
test('Edit Personnel - พนักงาน', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
// เข้าสู่หน้าแก้ไขพนักงาน
|
||||
await page.click("(//div[@role='tab'])[2]");
|
||||
await page.waitForSelector('id=btn-kebab-action-employeem', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=btn-kebab-action-employeem');
|
||||
|
||||
// ตรวจสอบการคลิกว่าได้มีการคลิกหรือการแสดงจริงหรือไม่
|
||||
// const isElementVisible = await page.isVisible(
|
||||
// 'id=btn-kebab-edit-employeem',
|
||||
// );
|
||||
// console.log('Element visibility:', isElementVisible);
|
||||
|
||||
await page.click('id=btn-kebab-edit-employeem');
|
||||
|
||||
// แก้ไขข้อมูล
|
||||
await page.fill('id=drawer-info-personnel-input-first-name', 'อานน');
|
||||
await page.fill('id=drawer-info-personnel-input-last-name', 'รักมาก');
|
||||
await page.fill('id=drawer-info-personnel-input-first-name-en', 'Arnon');
|
||||
await page.fill('id=drawer-info-personnel-input-last-name-en', 'Rakmak');
|
||||
await page.click('id=btn-info-basic-save'); // คลิกปุ่มบันทึก
|
||||
|
||||
// ตรวจสอบหลังแก้ไขเสร็จ
|
||||
await page.waitForSelector('id=btn-kebab-action-employeem', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=btn-kebab-action-employeem');
|
||||
await page.waitForSelector('id=btn-kebab-view-detail-employeem', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=btn-kebab-view-detail-employeem');
|
||||
|
||||
// ตรวจสอบข้อมูลว่าทำการแก้ไขถูกหรือไม่
|
||||
const detailEditFistName = await page.inputValue("//input[@value='อานน']");
|
||||
const detailEditLastName = await page.inputValue(
|
||||
"//input[@value='รักมาก']",
|
||||
);
|
||||
const detailEditFistNameEn = await page.inputValue(
|
||||
"//input[@value='Arnon']",
|
||||
);
|
||||
const detailEditLastNameEn = await page.inputValue(
|
||||
"//input[@value='Rakmak']",
|
||||
);
|
||||
|
||||
await expect(detailEditFistName).toBe('อานน');
|
||||
await expect(detailEditLastName).toBe('รักมาก');
|
||||
await expect(detailEditFistNameEn).toBe('Arnon');
|
||||
await expect(detailEditLastNameEn).toBe('Rakmak');
|
||||
|
||||
console.log('ตรวจสอบการแก้ไขข้อมูลพนักงานถูกต้อง');
|
||||
} catch (error) {
|
||||
console.log('เกิดข้อผิดพลาดในการทดสอบแก้ไขบุคลากร');
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
await page.waitForTimeout(4000);
|
||||
await page.click('id=btn-info-close');
|
||||
});
|
||||
|
||||
test('Edit Personnel - พนักงานส่งเอกสาร', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
// เข้าสู่หน้าแก้ไขพนักงาน
|
||||
await page.click("(//div[@role='tab'])[3]");
|
||||
await page.click('id=btn-kebab-action-courierw');
|
||||
await page.waitForSelector('id=btn-kebab-edit-courierw');
|
||||
await page.click('id=btn-kebab-edit-courierw');
|
||||
|
||||
// แก้ไขข้อมูล
|
||||
await page.fill('id=drawer-info-personnel-input-first-name', 'ลาดา');
|
||||
await page.fill('id=drawer-info-personnel-input-last-name', 'มดา');
|
||||
await page.fill('id=drawer-info-personnel-input-first-name-en', 'Lada');
|
||||
await page.fill('id=drawer-info-personnel-input-last-name-en', 'Mada');
|
||||
await page.click('id=btn-info-basic-save'); // คลิกปุ่มบันทึก
|
||||
|
||||
// ตรวจสอบหลังแก้ไขเสร็จ
|
||||
await page.waitForSelector('id=btn-kebab-action-courierw', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=btn-kebab-action-courierw');
|
||||
await page.waitForSelector('id=btn-kebab-view-detail-courierw', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=btn-kebab-view-detail-courierw');
|
||||
|
||||
// ตรวจสอบข้อมูลว่าทำการแก้ไขถูกหรือไม่
|
||||
const detailEditFistName = await page.inputValue("//input[@value='ลาดา']");
|
||||
const detailEditLastName = await page.inputValue("//input[@value='มดา']");
|
||||
const detailEditFistNameEn = await page.inputValue(
|
||||
"//input[@value='Lada']",
|
||||
);
|
||||
const detailEditLastNameEn = await page.inputValue(
|
||||
"//input[@value='Mada']",
|
||||
);
|
||||
|
||||
await expect(detailEditFistName).toBe('ลาดา');
|
||||
await expect(detailEditLastName).toBe('มดา');
|
||||
await expect(detailEditFistNameEn).toBe('Lada');
|
||||
await expect(detailEditLastNameEn).toBe('Mada');
|
||||
|
||||
console.log('ตรวจสอบการแก้ไขข้อมูลพนักงานส่งเอกสารถูกต้อง');
|
||||
} catch (error) {
|
||||
console.log('เกิดข้อผิดพลาดในการทดสอบแก้ไขบุคลากร');
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
await page.waitForTimeout(4000);
|
||||
await page.click('id=btn-info-close');
|
||||
});
|
||||
|
||||
test('Edit Personnel - ตัวแทน', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
// เข้าสู่หน้าแก้ไขพนักงาน
|
||||
await page.click("(//div[@role='tab'])[4]");
|
||||
await page.waitForTimeout(1000);
|
||||
await page.click('id=btn-kebab-action-delegatem');
|
||||
await page.waitForSelector('id=btn-kebab-edit-delegatem');
|
||||
await page.click('id=btn-kebab-edit-delegatem');
|
||||
|
||||
// แก้ไขข้อมูล
|
||||
await page.fill('id=drawer-info-personnel-input-first-name', 'ธนกร');
|
||||
await page.fill('id=drawer-info-personnel-input-last-name', 'ลอยฟ้า');
|
||||
await page.fill(
|
||||
'id=drawer-info-personnel-input-first-name-en',
|
||||
'Thanakorn',
|
||||
);
|
||||
await page.fill('id=drawer-info-personnel-input-last-name-en', 'Loifa');
|
||||
await page.click('id=btn-info-basic-save'); // คลิกปุ่มบันทึก
|
||||
|
||||
// ตรวจสอบหลังแก้ไขเสร็จ
|
||||
await page.waitForSelector('id=btn-kebab-action-delegatem', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=btn-kebab-action-delegatem');
|
||||
await page.waitForSelector('id=btn-kebab-view-detail-delegatem', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=btn-kebab-view-detail-delegatem');
|
||||
|
||||
// ตรวจสอบข้อมูลว่าทำการแก้ไขถูกหรือไม่
|
||||
const detailEditFistName = await page.inputValue("//input[@value='ธนกร']");
|
||||
const detailEditLastName = await page.inputValue(
|
||||
"//input[@value='ลอยฟ้า']",
|
||||
);
|
||||
const detailEditFistNameEn = await page.inputValue(
|
||||
"//input[@value='Thanakorn']",
|
||||
);
|
||||
const detailEditLastNameEn = await page.inputValue(
|
||||
"//input[@value='Loifa']",
|
||||
);
|
||||
|
||||
await expect(detailEditFistName).toBe('ธนกร');
|
||||
await expect(detailEditLastName).toBe('ลอยฟ้า');
|
||||
await expect(detailEditFistNameEn).toBe('Thanakorn');
|
||||
await expect(detailEditLastNameEn).toBe('Loifa');
|
||||
|
||||
console.log('ตรวจสอบการแก้ไขข้อมูลตัวแทนถูกต้อง');
|
||||
} catch (error) {
|
||||
console.log('เกิดข้อผิดพลาดในการทดสอบแก้ไขบุคลากร');
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
await page.waitForTimeout(4000);
|
||||
await page.click('id=btn-info-close');
|
||||
});
|
||||
|
||||
test('Edit Personnel - เอเจนซี่', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
|
||||
try {
|
||||
// เข้าสู่หน้าแก้ไขพนักงาน
|
||||
await page.click("(//div[@role='tab'])[5]");
|
||||
await page.waitForTimeout(2000);
|
||||
await page.waitForSelector('id=btn-kebab-action-agencyw', {
|
||||
state: 'visible',
|
||||
});
|
||||
await page.click('id=btn-kebab-action-agencyw');
|
||||
await page.waitForSelector('id=btn-kebab-edit-agencyw');
|
||||
await page.click('id=btn-kebab-edit-agencyw');
|
||||
|
||||
// แก้ไขข้อมูล
|
||||
await page.fill('id=drawer-info-personnel-input-first-name', 'นิดา');
|
||||
await page.fill('id=drawer-info-personnel-input-last-name', 'อามา');
|
||||
await page.fill('id=drawer-info-personnel-input-first-name-en', 'Nida');
|
||||
await page.fill('id=drawer-info-personnel-input-last-name-en', 'Arma');
|
||||
await page.click('id=btn-info-basic-save'); // คลิกปุ่มบันทึก
|
||||
|
||||
// ตรวจสอบหลังแก้ไขเสร็จ
|
||||
await page.waitForSelector('id=btn-kebab-action-agencyw', {
|
||||
state: 'visible',
|
||||
});
|
||||
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 detailEditFistName = await page.inputValue("//input[@value='นิดา']");
|
||||
const detailEditLastName = await page.inputValue("//input[@value='อามา']");
|
||||
const detailEditFistNameEn = await page.inputValue(
|
||||
"//input[@value='Nida']",
|
||||
);
|
||||
const detailEditLastNameEn = await page.inputValue(
|
||||
"//input[@value='Arma']",
|
||||
);
|
||||
|
||||
await expect(detailEditFistName).toBe('นิดา');
|
||||
await expect(detailEditLastName).toBe('อามา');
|
||||
await expect(detailEditFistNameEn).toBe('Nida');
|
||||
await expect(detailEditLastNameEn).toBe('Arma');
|
||||
|
||||
console.log('ตรวจสอบการแก้ไขข้อมูลเอเจนซี่ถูกต้อง');
|
||||
} catch (error) {
|
||||
console.log('เกิดข้อผิดพลาดในการทดสอบแก้ไขบุคลากร');
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
await page.waitForTimeout(4000);
|
||||
await page.click('id=btn-info-close');
|
||||
});
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
import { test, expect, Page } from '@playwright/test';
|
||||
import { strictEqual } from 'assert';
|
||||
import { log } from 'console';
|
||||
|
||||
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('id=btn-kebab-action-employeem');
|
||||
|
||||
await page.click('id=btn-kebab-status-employeem', {
|
||||
force: true,
|
||||
});
|
||||
await page.click('id=btn-ok-dialog');
|
||||
console.log('เปลี่ยนสถานะสำเร็จ');
|
||||
await page.reload();
|
||||
|
||||
// รอ Update
|
||||
await page.waitForTimeout(2000);
|
||||
console.log('สถานะถูกเปลี่ยนแล้ว');
|
||||
|
||||
// ตรวจสอบสีของแถวหลังจากทำการเปลี่ยนสถานะ
|
||||
const rowLocator = page.locator(
|
||||
"//div[normalize-space(text())='อานน รักมาก']",
|
||||
);
|
||||
const backgroundColor = await rowLocator.evaluate(
|
||||
(el) => window.getComputedStyle(el).backgroundColor,
|
||||
);
|
||||
|
||||
// กำหนดสีหลัเปลี่ยนสถานะการใช้งาน
|
||||
const expectedColor = 'rgba(0, 0, 0, 0)';
|
||||
|
||||
// ตรวจสอบสีที่เปลี่ยนไป
|
||||
expect(backgroundColor.trim()).toBe(expectedColor);
|
||||
console.log('สีของแถวถูกเปลี่ยนเป็นสีเทาอ่อน');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ');
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
await page.waitForTimeout(2000);
|
||||
});
|
||||
|
||||
test('เปิดสถานะการใช้งานบุคลากร', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
try {
|
||||
await page.click('id=btn-kebab-action-employeem');
|
||||
|
||||
await page.click('id=btn-kebab-status-employeem', {
|
||||
force: true,
|
||||
});
|
||||
await page.click('id=btn-ok-dialog');
|
||||
console.log('เปลี่ยนสถานะสำเร็จ');
|
||||
await page.reload();
|
||||
|
||||
// รอ Update
|
||||
await page.waitForTimeout(2000);
|
||||
console.log('สถานะถูกเปลี่ยนแล้ว');
|
||||
|
||||
// ตรวจสอบสีของแถวหลังจากทำการเปลี่ยนสถานะ
|
||||
const rowLocator = page.locator(
|
||||
"//div[normalize-space(text())='อานน รักมาก']",
|
||||
);
|
||||
const backgroundColor = await rowLocator.evaluate(
|
||||
(el) => window.getComputedStyle(el).backgroundColor,
|
||||
);
|
||||
|
||||
// กำหนดสีหลัเปลี่ยนสถานะการใช้งาน
|
||||
const expectedColor = 'rgba(0, 0, 0, 0)';
|
||||
|
||||
// ตรวจสอบสีที่เปลี่ยนไป
|
||||
expect(backgroundColor.trim()).toBe(expectedColor);
|
||||
console.log('สีของแถวถูกเปลี่ยนเป็นของสถานะการใช้งาน');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ');
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
await page.waitForTimeout(2000);
|
||||
});
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
import { test, expect, Page } from '@playwright/test';
|
||||
import { strictEqual } from 'assert';
|
||||
import { log } from 'console';
|
||||
import { errorMonitor } from 'events';
|
||||
|
||||
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');
|
||||
isLoginSuccessful = false;
|
||||
}
|
||||
}
|
||||
|
||||
test('Login', async () => {
|
||||
await login(page);
|
||||
});
|
||||
|
||||
test('Search Personnel', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
try {
|
||||
// กำหนดคำที่จะค้นหา
|
||||
const searchDatas = [
|
||||
'อานน',
|
||||
'0842262228',
|
||||
'1000001',
|
||||
'10',
|
||||
'20',
|
||||
'30',
|
||||
'40',
|
||||
];
|
||||
|
||||
for (const searchData of searchDatas) {
|
||||
// พิมพ์คำที่ต้องการค้นหา
|
||||
await page.fill('id=input-search', searchData); // ดึงคำมาจาก searchDatas
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// ดึงผลลัพฑ์การค้นหาทั้งหมด
|
||||
const searchResults = page.locator("//table[@class='q-table']//tbody[1]");
|
||||
const resultCount = await searchResults.count();
|
||||
|
||||
// ถ้าไม่มีผลลัพธ์ให้ข้ามคำถัดไป
|
||||
if (resultCount === 0) {
|
||||
console.error(`ไม่พบการค้นหา: '${searchData}', ข้ามไปคำถัดไป`);
|
||||
continue; // ข้ามคำค้นหาคำถัดไป
|
||||
}
|
||||
|
||||
// ดึงข้อความทั้งหมดของผลลัพธ์การค้นหา
|
||||
const searchResultTexts = await searchResults.allTextContents();
|
||||
console.log(`ผลลัพธ์ของการค้นหา '${searchData}'`, searchDatas);
|
||||
|
||||
// ตรวจสอบว่าผลลัพธ์ทั้งหมดมีคำที่ค้นหาหรือไม่
|
||||
const allResultContainSearchData = searchResultTexts.every((result) =>
|
||||
result.includes(searchData),
|
||||
);
|
||||
|
||||
// ถ้าไม่พบคำค้นหา ให้แค่แจ้งเตือนและข้ามไปคำถัดไป
|
||||
if (!allResultContainSearchData) {
|
||||
console.error(
|
||||
`\x1b[31mผลลัพธ์บางรายการไม่ตรงกับคำค้นหา: '${searchData}', ข้ามไปคำถัดไป\x1b[0m`,
|
||||
);
|
||||
continue; // ข้ามไปคำค้นหาถัดไป
|
||||
}
|
||||
|
||||
expect(allResultContainSearchData).toBe(true);
|
||||
|
||||
console.log(`การค้นหา '${searchData}' และการแสดงผลสำเร็จ`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบการค้นหาหลายคำค้นหา', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
await page.waitForTimeout(2000);
|
||||
});
|
||||
|
|
@ -0,0 +1,392 @@
|
|||
import { test, expect, Page } from '@playwright/test';
|
||||
import { strictEqual } from 'assert';
|
||||
|
||||
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 {
|
||||
// แสดงสถานะที่ใช้งาน
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.waitForTimeout(1000);
|
||||
await page.click('id=field-select-status');
|
||||
//รอให้ dropdown เปิด
|
||||
await page.waitForSelector('id=field-select-status_1');
|
||||
|
||||
// คลิกเพื่อแสดงสถานะกำลังใช้งานอยู่
|
||||
await page.click('id=field-select-status_1');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่ามีแต่สถานะใช้งานหรือไม่
|
||||
const statusActive = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusActive); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะกำลังใช้งานเท่านั้น');
|
||||
|
||||
// แสดงสถานะที่ไม่ใช้งาน
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.keyboard.press('Escape');
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะกำลังไม่ใช้งาน
|
||||
await page.click('id=field-select-status_2');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่ามีแต่สถานะไม่ใช้งานหรือไม่
|
||||
const statusInActive = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusInActive); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะที่ไม่ใช้งาน');
|
||||
|
||||
// แสดงสถานะทั้งหมด
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.keyboard.press('Escape');
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะทั้งหมด
|
||||
await page.click('id=field-select-status_0');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่าแสดงทุกสถานะหรือไม่
|
||||
const statusAll = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('สถานะทั้งหมด', statusAll); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะทั้งหมด');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ:', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('ตรวจสอบการแสดงสถานะใช้งาน เปิด/ปิด พนักงาน', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
try {
|
||||
// คลิก Tab พนักงาน
|
||||
await page.click("(//div[@role='tab'])[2]");
|
||||
|
||||
// แสดงสถานะที่ใช้งาน
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะกำลังใช้งานอยู่
|
||||
await page.click('id=field-select-status_1');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่ามีแต่สถานะใช้งานหรือไม่
|
||||
const statusActive = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusActive); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะกำลังใช้งานเท่านั้น');
|
||||
|
||||
// แสดงสถานะที่ไม่ใช้งาน
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.keyboard.press('Escape');
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะกำลังไม่ใช้งาน
|
||||
await page.click('id=field-select-status_2');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่ามีแต่สถานะไม่ใช้งานหรือไม่
|
||||
const statusInActive = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusInActive); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะที่ไม่ใช้งาน');
|
||||
|
||||
// แสดงสถานะทั้งหมด
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.keyboard.press('Escape');
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะทั้งหมด
|
||||
await page.click('id=field-select-status_0');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่าแสดงทุกสถานะหรือไม่
|
||||
const statusAll = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('สถานะทั้งหมด', statusAll); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะทั้งหมด');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ:', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('ตรวจสอบการแสดงสถานะใช้งาน เปิด/ปิด พนักงานส่งเอกสาร', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
try {
|
||||
// คลิก Tab พนักงานส่งเอกสาร
|
||||
await page.click("(//div[@role='tab'])[3]");
|
||||
|
||||
// แสดงสถานะที่ใช้งาน
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะกำลังใช้งานอยู่
|
||||
await page.click('id=field-select-status_1');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่ามีแต่สถานะใช้งานหรือไม่
|
||||
const statusActive = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusActive); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะกำลังใช้งานเท่านั้น');
|
||||
|
||||
// แสดงสถานะที่ไม่ใช้งาน
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.keyboard.press('Escape');
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะกำลังไม่ใช้งาน
|
||||
await page.click('id=field-select-status_2');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่ามีแต่สถานะไม่ใช้งานหรือไม่
|
||||
const statusInActive = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusInActive); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะที่ไม่ใช้งาน');
|
||||
|
||||
// แสดงสถานะทั้งหมด
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.keyboard.press('Escape');
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะทั้งหมด
|
||||
await page.click('id=field-select-status_0');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่าแสดงทุกสถานะหรือไม่
|
||||
const statusAll = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('สถานะทั้งหมด', statusAll); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะทั้งหมด');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ:', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('ตรวจสอบการแสดงสถานะใช้งาน เปิด/ปิด ตัวแทน', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
try {
|
||||
// คลิก Tab ตัวแทน
|
||||
await page.click("(//div[@role='tab'])[4]");
|
||||
|
||||
// แสดงสถานะที่ใช้งาน
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะกำลังใช้งานอยู่
|
||||
await page.click('id=field-select-status_1');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่ามีแต่สถานะใช้งานหรือไม่
|
||||
const statusActive = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusActive); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะกำลังใช้งานเท่านั้น');
|
||||
|
||||
// แสดงสถานะที่ไม่ใช้งาน
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.keyboard.press('Escape');
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะกำลังไม่ใช้งาน
|
||||
await page.click('id=field-select-status_2');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่ามีแต่สถานะไม่ใช้งานหรือไม่
|
||||
const statusInActive = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusInActive); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะที่ไม่ใช้งาน');
|
||||
|
||||
// แสดงสถานะทั้งหมด
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.keyboard.press('Escape');
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะทั้งหมด
|
||||
await page.click('id=field-select-status_0');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่าแสดงทุกสถานะหรือไม่
|
||||
const statusAll = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('สถานะทั้งหมด', statusAll); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะทั้งหมด');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ:', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
test('ตรวจสอบการแสดงสถานะใช้งาน เปิด/ปิด เอเจนซี่', async () => {
|
||||
if (!isLoginSuccessful) {
|
||||
await login(page);
|
||||
}
|
||||
try {
|
||||
// คลิก Tab เอเจนซี่
|
||||
await page.click("(//div[@role='tab'])[5]");
|
||||
|
||||
// แสดงสถานะที่ใช้งาน
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะกำลังใช้งานอยู่
|
||||
await page.click('id=field-select-status_1');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่ามีแต่สถานะใช้งานหรือไม่
|
||||
const statusActive = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusActive); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะกำลังใช้งานเท่านั้น');
|
||||
|
||||
// แสดงสถานะที่ไม่ใช้งาน
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.keyboard.press('Escape');
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะกำลังไม่ใช้งาน
|
||||
await page.click('id=field-select-status_2');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่ามีแต่สถานะไม่ใช้งานหรือไม่
|
||||
const statusInActive = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusInActive); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะที่ไม่ใช้งาน');
|
||||
|
||||
// แสดงสถานะทั้งหมด
|
||||
// คลิกเพื่อเปิด dropdown
|
||||
await page.keyboard.press('Escape');
|
||||
await page.click('id=field-select-status');
|
||||
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
|
||||
|
||||
// คลิกเพื่อแสดงสถานะทั้งหมด
|
||||
await page.click('id=field-select-status_0');
|
||||
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
|
||||
|
||||
// ตรวจสอบว่าแสดงทุกสถานะหรือไม่
|
||||
const statusAll = await page.isVisible('id=field-select-status_1');
|
||||
|
||||
console.log('สถานะทั้งหมด', statusAll); // เช็ค
|
||||
|
||||
expect(statusActive).toBe(false);
|
||||
|
||||
console.log('ตรวจสอบสถานะทั้งหมด');
|
||||
} catch (error) {
|
||||
console.error('เกิดข้อผิดพลาดในการทดสอบ:', error);
|
||||
isLoginSuccessful = false;
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue