پرش به محتوای اصلی

اجرای ناهمگام

هشدار

دستور executeAsync منسوخ شده است و در نسخه‌های آینده حذف خواهد شد. لطفا به جای آن از دستور execute استفاده کنید زیرا پشتیبانی بهتری برای مدیریت خطا از طریق async/await ارائه می‌دهد.

یک قطعه جاوااسکریپت را در صفحه تزریق می‌کند تا در زمینه فریم انتخاب شده فعلی اجرا شود. اسکریپت اجرا شده ناهمگام فرض می‌شود و باید با فراخوانی کال‌بک ارائه شده، که همیشه به عنوان آخرین آرگومان تابع فراهم می‌شود، پایان خود را اعلام کند. مقداری که به این کال‌بک داده می‌شود به کلاینت برگردانده خواهد شد.

دستورات اسکریپت ناهمگام نمی‌توانند بارگذاری صفحه را در بر بگیرند. اگر رویداد تخلیه (unload) در حین انتظار برای نتیجه اسکریپت فعال شود، یک خطا به کلاینت برگردانده خواهد شد.

آرگومان اسکریپت، اسکریپتی را که باید اجرا شود به شکل بدنه تابع تعریف می‌کند. تابع با آرایه args فراهم شده فراخوانی می‌شود و مقادیر می‌توانند از طریق شی arguments به ترتیب مشخص شده دسترسی پیدا کنند. آخرین آرگومان همیشه یک تابع کال‌بک خواهد بود که باید فراخوانی شود تا نشان دهد که اسکریپت به پایان رسیده است.

آرگومان‌ها می‌توانند هر نوع JSON-primitive، آرایه یا شی JSON باشند. اشیاء JSON که یک مرجع WebElement را تعریف می‌کنند به عنصر DOM متناظر تبدیل خواهند شد. به همین ترتیب، هر WebElement در نتیجه اسکریپت به عنوان اشیاء JSON WebElement به کلاینت برگردانده خواهد شد.

احتیاط

لطفاً به جای آن از execute استفاده کنید

استفاده
browser.executeAsync(script, arguments)
پارامترها
نامنوعجزئیات
scriptString, Functionاسکریپتی که باید اجرا شود.
arguments
اختیاری
*آرگومان‌های اسکریپت
مثال
executeAsync.js
it('should execute async JavaScript on the page', async () => {
await browser.setTimeout({ script: 5000 })
const result = await browser.executeAsync(function(a, b, c, d, done) {
// browser context - you may not access client or console
setTimeout(() => {
done(a + b + c + d)
}, 3000);
}, 1, 2, 3, 4)
// node.js context - client and console are available
console.log(result) // outputs: 10
});
برگشت
  • <*> return: نتیجه اسکریپت.

Welcome! How can I help?

WebdriverIO AI Copilot