انتقل إلى المحتوى الرئيسي

تنفيذ غير متزامن

تحذير

الأمر executeAsync مهمل وسيتم إزالته في إصدار مستقبلي. يرجى استخدام أمر execute بدلاً من ذلك حيث يوفر دعمًا أفضل لمعالجة الأخطاء عبر async/await.

حقن مقتطف من JavaScript في الصفحة للتنفيذ في سياق الإطار المحدد حاليًا. يفترض أن النص البرمجي الذي تم تنفيذه غير متزامن ويجب أن يشير إلى انتهائه من خلال استدعاء رد الاتصال المقدم، والذي يتم توفيره دائمًا كوسيط نهائي للدالة. القيمة المرسلة إلى رد الاتصال هذا سيتم إرجاعها إلى العميل.

لا يمكن أن تمتد أوامر النصوص البرمجية غير المتزامنة عبر تحميلات الصفحة. إذا تم إطلاق حدث تفريغ أثناء انتظار نتيجة نص برمجي، يجب إرجاع خطأ إلى العميل.

يحدد وسيط النص البرمجي النص البرمجي المراد تنفيذه في شكل نص وظيفة. سيتم استدعاء الدالة مع مصفوفة الوسائط المقدمة ويمكن الوصول إلى القيم عبر كائن الوسائط بالترتيب المحدد. الوسيط النهائي سيكون دائمًا دالة رد اتصال يجب استدعاؤها للإشارة إلى أن النص البرمجي قد انتهى.

قد تكون الوسائط أي JSON أولي، أو مصفوفة، أو كائن JSON. كائنات JSON التي تحدد مرجع WebElement سيتم تحويلها إلى عنصر DOM المقابل. وبالمثل، سيتم إرجاع أي WebElements في نتيجة النص البرمجي إلى العميل ككائنات WebElement JSON.

تنبيه

يرجى استخدام 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