jws-frontend/tests/01-Manage/02-Admin-PersonnelManagement/JWS_PM_001_CreatePersonnel.spec.ts

962 lines
41 KiB
TypeScript
Raw Normal View History

2024-12-03 17:59:46 +07:00
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;
}
});