المهل الزمنية
كل أمر في WebdriverIO هو عملية غير متزامنة. يتم إرسال طلب إلى خادم Selenium (أو خدمة سحابية مثل Sauce Labs)، واستجابته تحتوي على النتيجة بمجرد اكتمال الإجراء أو فشله.
لذلك، يعد الوقت عنصراً حاسماً في عملية الاختبار بأكملها. عندما يعتمد إجراء معين على حالة إجراء آخر، يجب التأكد من تنفيذها بالترتيب الصحيح. تلعب المهل الزمنية دوراً مهماً عند التعامل مع هذه المشكلات.
مهل WebDriver الزمنية
مهلة سكريبت الجلسة
تمتلك الجلسة مهلة زمنية مرتبطة لتنفيذ السكريبت تحدد الوقت المسموح به لانتظار تنفيذ السكريبت غير المتزامن. ما لم يُذكر خلاف ذلك، فإنها تكون 30 ثانية. يمكنك تعيين هذه المهلة الزمنية كما يلي:
await browser.setTimeout({ 'script': 60000 })
await browser.executeAsync((done) => {
console.log('this should not fail')
setTimeout(done, 59000)
})
مهلة تحميل الصفحة للجلسة
تمتلك الجلسة مهلة زمنية مرتبطة لتحميل الصفحة تحدد الوقت المسموح به لانتظار اكتمال تحميل الصفحة. ما لم يُذكر خلاف ذلك، فإنها تكون 300,000 مللي ثانية.
يمكنك تعيين هذه المهلة الزمنية كما يلي:
await browser.setTimeout({ 'pageLoad': 10000 })
كلمة
pageLoad
هي جزء من مواصفات WebDriver الرسمية، ولكن قد لا تكون مدعومة في متصفحك (الاسم السابق هوpage load
).
مهلة الانتظار الضمنية للجلسة
تمتلك الجلسة مهلة زمنية ضمنية مرتبطة للانتظار. تحدد هذه المهلة الوقت المسموح به للانتظار لاستراتيجية تحديد العناصر الضمنية عند البحث عن العناصر باستخدام أوامر findElement
أو findElements
($
أو $$
، على التوالي، عند تشغيل WebdriverIO مع أو بدون منصة اختبار WDIO). ما لم يُذكر خلاف ذلك، فإنها تكون 0 مللي ثانية.
يمكنك تعيين هذه المهلة الزمنية عبر:
await browser.setTimeout({ 'implicit': 5000 })