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

طبعة مترجمة. تظل المعرفات الفنية في شكلها الأصلي.

يفتح زر المساعدة نافذة جديدة. يستمر الاختبار في قراءة الصفحة الأصلية، أو يلتقط أي علامة تبويب تكون الأخيرة. قد يمر عند وجود نافذة أخرى ويفشل عندما تتغير البيئة. العقد المفقود هو الملكية: ما هي الصفحة التي أنشأها هذا الإجراء؟
يتبع هذا الدليل وثائق صفحات Playwright مع نافذة دعم محلية تم اختراعها. إنه ليس تسجيل دخول إلى حساب أو تدفق دفع خارجي. الهدف هو إرفاق نافذة منبثقة بالإجراء الأولي، وفحص الصفحة التي تلقيتها بالفعل وتجنب تحويل ترتيب علامات التبويب إلى دليل.
انتظر الصفحة التي تمتلك الإجراء
ابدأ النافذة المنبثقة وانتظر قبل النقر فوق عنصر التحكم الذي يفتحها. ثم انتظر نفس الوعد واحتفظ بمرجع الصفحة الذي تم إرجاعه. يجب ألا تفلت النافذة الجديدة السريعة من الانتظار، ويجب ألا تصبح علامة تبويب مختلفة موجودة هدفًا عرضيًا.
const pendingPopup = page.waitForEvent('popup');
await page.getByRole('button', { name: 'Open demo help' }).click();
const popup = await pendingPopup;
await expect(popup.getByRole('heading', { name: 'Demo help' })).toBeVisible();يفترض هذا المثال أن التطبيق المحلي يفتح نافذة منبثقة بعنوان مفيد. ولا ينشئ عنوانًا أو يضمن أن كل سياسة متصفح تسمح بكل نوع من النوافذ الجديدة. ضع المستمع قبل الإجراء وتحقق من المحتوى الفعلي المتوقع بعد ذلك.
يصف دليل الصفحات أيضًا الاستماع إلى صفحة جديدة في سياق المتصفح. يكون هذا الحدث الأوسع مفيدًا عندما لا تكون صفحة البدء معروفة. عندما يكون معروفًا، فإن الحدث المنبثق على مستوى الصفحة يعطي علاقة أوضح. قم بتوسيع نطاق الانتظار حتى يصل إلى السلوك بدلاً من اعتماد المستمع الأوسع بشكل افتراضي.
الصفحة الجديدة ليست الوجهة الصحيحة بعد
يثبت استلام كائن الصفحة أنه تم إنشاء نافذة. ولا يثبت أنه تم تحميل المحتوى المقصود أو أن التنقل انتهى عند مصدر مسموح به. يمكن أن تظهر النافذة المنبثقة خطأً أو إعادة توجيه أو مستندًا مختلفًا. تحقق من عنوان URL ذو معنى أو حالة الصفحة مقابل متطلبات المنتج الفعلية.
بالنسبة للعرض التوضيحي، يكون العنوان كافيًا لإثبات الملكية. للحصول على تدفق حقيقي، استخدم الوجهة المتوقعة المعتمدة والمعلومات التي يجب أن يتلقاها الشخص. لا تعامل أي عنوان مرئي على أنه نجاح. لا تدخل بيانات الاعتماد في صفحة غير متوقعة لأنها فتحت في اللحظة المناسبة.
استخدم المرجع المنبثق الذي تم إرجاعه للتأكيدات والإجراءات. تجنب الاعتماد على ترتيب context.pages() . قد يحتوي السياق بالفعل على علامة تبويب إعلام أو نافذة مساعدة سابقة أو صفحات أنشأها التطبيق. افتراض علامة التبويب الأخيرة هو تخمين مخفي في تعليمات برمجية يمكن قراءتها بطريقة أخرى.
افصل بين التنقل وإكمال الأعمال
قد يكون المستند الذي يظهر في نافذة أخرى مجرد خطوة واحدة في الرحلة. يجب أن تحتوي مقالة الدعم على الإرشادات الموعودة. يجب أن يتوافق التقرير الذي تم إنشاؤه مع السجل المحدد. يجب أن تعكس نافذة التأكيد العملية الفعلية. لا يمكن لحدث النافذة الجديدة أن يثبت أيًا من نتائج الأعمال هذه بمفرده.
استخدم سجلات التدريج المبتكرة أو المعتمدة أثناء تطوير الاختبار. إذا دخلت النافذة المنبثقة إلى خدمة جهة خارجية، فقم بتعيين حدود الاختبار المسموح بها قبل التصرف هناك. لا يعد مرجع المتصفح المناسب إذنًا لإرسال نموذج أو إنفاق الأموال أو الكشف عن بيانات الحساب إلى موقع آخر.
بالنسبة لعمليات سير العمل التي تنتهي مرة أخرى في النافذة الأصلية، احتفظ بكلا المرجعين وقم بتسميتهما. تحقق من الحالة التالية للصفحة الأصلية بعد الإجراء المنبثق المعتمد. لا تغلق الصفحة الرئيسية عن طريق الخطأ لتسهيل عملية التنظيف. يجب أن يحافظ الاختبار على العلاقة التي يختبرها الشخص.
قرر كيفية الإبلاغ عن السلوك غير المنبثق
قد يقوم المنتج بإعادة استخدام نفس علامة التبويب على الهاتف المحمول عمدًا أو بتكوين مختلف. قم بتأكيد هذا السلوك قبل طلب نافذة منبثقة في كل مكان. إذا وعدت المواصفات بوجود نافذة منبثقة ولم تصل أي منها، فيجب أن يفشل انتظار الحدث المحدود مع تلك الحدود الواضحة بدلاً من تعليقه إلى أجل غير مسمى.
لا تقم بإصلاح الفشل عن طريق النقر بشكل متكرر. يمكن أن تؤدي النقرات المتكررة إلى إنشاء عدة نوافذ عندما يكون الطلب الأصلي بطيئًا فحسب. تحقق مما إذا كانت النقرة قد حدثت، وما إذا كان المتصفح قد حظر الإجراء وما إذا كان التطبيق قد قام بتغيير تصميم التنقل الخاص به. والتصحيح الصحيح يعتمد على تلك الأدلة.
قم بإغلاق النافذة المنبثقة المحلية عند انتهاء الاختبار من فحصها. احتفظ بالأدلة الضرورية وفقًا لسياسة الخصوصية الخاصة بالجناح. يمكن أن تحتوي عناوين URL والعناوين ولقطات الشاشة الخاصة بالنافذة على تفاصيل سجل خاصة، لذا فإن لقطة الشاشة الرئيسية النظيفة لا تجعل كل نافذة منبثقة مرفقة آمنة للتوزيع.
يصف AnyTest استكشاف التطبيقات والاختبارات الشاملة التي يراجعها البشر. يمكن للمراجع أن يسأل عن النافذة التي تستهدفها الرحلة التي تم إنشاؤها بالفعل وكيف تثبت هذه العلاقة. لا تتم المطالبة بتنفيذ نافذة منبثقة محددة في AnyTest. والنتيجة المفيدة هي التحقق الصريح من مالك الصفحة والوجهة، وليس مجموعة أكبر من علامات التبويب.
الأسئلة الشائعة
هل يجب أن يستخدم الاختبار علامة التبويب الأخيرة؟
ليس عندما يكون من الممكن ربط إجراء البادئ بحدث منبثق. احتفظ بمرجع الصفحة التي تم إرجاعها.
هل الحدث المنبثق هو النتيجة النهائية؟
لا. تحقق من الوجهة/المحتوى المقصود ونتائج الأعمال بشكل منفصل.