آموزش نمایشنامه نویس برای مبتدیان 5 – اجرای اکشن
ورودی تست
به راحتی می توانید فیلدهای فرم را با آن پر کنید page.fill()
.
page.fill()
روی عنصر تمرکز می کند و an را تحریک می کند input
رویداد با متن مشخص شده کار می کند <input>
، <textarea>
، [contenteditable]
و <label>
مرتبط با یک ناحیه ورودی یا متنی.
const { test } = require('@playwright/test');
test('input text into a test element', async ({ page }) => {
await page.goto('https://demoblaze.com');
await page.click('#signin2');
await page.fill('#sign-username', 'zt4ff');
});
برای مشاهده نحوه اجرای آزمون، می توانید تنظیم کنید
headless
وslowMo
ملک درplaywright.config.js
فایل. برای مثال:
// playwright.config.js
// ...
use: {
launchOptions: {
slowMo: 400,
headless: false
}
// ...
page.type()
همچنین می توان استفاده کرد اما با آن فرق می کند page.fill()
به معنای ارسال الف keydown
، keypress/input
و keyup
رویداد برای هر شخصیت متن در حالی که page.fill()
فقط یک input
رویداد روی عنصر متمرکز با متن مشخص شده.
page.type()
هر رویداد صفحه کلید ضروری را فعال می کند و حتی می توانید آن را تنظیم کنید delay
از تایپ
چک باکس ها و دکمه های رادیویی
هنگام کار با چک باکس ها و دکمه های رادیویی، page
چند روش برای بررسی، برداشتن علامت و دریافت وضعیت این عناصر ورودی (input[type=checkbox]
، input[type=radio]
یا [role=checkbox]
.
// Check the checkbox
await page.check('#agree');
// Assert the checked state
expect(await page.isChecked('#agree')).toBeTruthy();
// Uncheck by input <label>.
await page.uncheck('#subscribe-label');
// Select the radio button
await page.check('text=XL');
انتخاب گزینه ها از <select>
// Single selection matching the value
await page.selectOption('select#colors', 'blue');
// Single selection matching the label
await page.selectOption('select#colors', { label: 'Blue' });
// Multiple selected items
await page.selectOption('select#colors', ['red', 'green', 'blue']);
// Select the option via element handle
const option = await page.$('#best-option');
await page.selectOption('select#colors', option);
با استفاده از ماوس
با استفاده از Playwright می توانید انواع مختلفی از کلیک های ماوس را انجام دهید. را .click()
متد یک آرگومان از عنصری که میخواهید روی آن کلیک کنید و آرگومانهای اختیاری برای تعریف گزینههای رویداد کلیک میگیرد. چند نمونه از موارد استفاده:
// generic clicking
await page.click('#edit-button');
// double click
await page.dblclick('#edit-button');
// right click
await page.click('#edit-button', { button: 'right' });
// using modifiers (like shift, control...) with the click
// shift + click
await page.click('#edit-button', { modifiers: ['Shift'] });
// ctrl + click
await page.click('#edit-button', { modifiers: ['Control'] });
// define the position point of click on the element
await page.click('#edit-button', { position: { x: 0, y: 0 } });
استفاده كردن .dispatchEvent()
برای مواردی که میخواهید فقط رویدادها را به صورت برنامهریزی راهاندازی کنید یا یک رویداد سفارشی را راهاندازی کنید که مستقیماً در Playwright API پیادهسازی نشده است، میتوانید از .dispatchEvent()
روش.
در اینجا میتوانید درباره ایجاد و راهاندازی رویدادها بخوانید
// trigerring a custom event 'build'
// .dispatchEvent(selector, type[, eventInit, options])
await page.dispatchEvent('#edit-button', 'build')