زمانهای انتظار
هر دستور در WebdriverIO یک عملیات ناهمگام است. درخواستی به سرور Selenium (یا سرویس ابری مانند Sauce Labs) ارسال میشود و پاسخ آن حاوی نتیجهای است که پس از تکمیل یا شکست عملیات دریافت میشود.
بنابراین، زمان یک جزء مهم در کل فرآیند تست است. وقتی یک عمل خاص به وضعیت عمل دیگری بستگی دارد، باید اطمینان حاصل کنید که آنها به ترتیب درست اجرا میشوند. زمانهای انتظار نقش مهمی در مواجهه با این مسائل دارند.
زمانهای انتظار WebDriver
زمان انتظار اسکریپت جلسه
هر جلسه دارای یک زمان انتظار اسکریپت مرتبط است که مدت زمان انتظار برای اجرای اسکریپتهای ناهمگام را مشخص میکند. مگر اینکه خلاف آن ذکر شود، این زمان ۳۰ ثانیه است. شما میتوانید این زمان انتظار را به صورت زیر تنظیم کنید:
await browser.setTimeout({ 'script': 60000 })
await browser.executeAsync((done) => {
console.log('this should not fail')
setTimeout(done, 59000)
})
زمان انتظار بارگذاری صفحه جلسه
هر جلسه دارای یک زمان انتظار بارگذاری صفحه مرتبط است که مدت زمان انتظار برای تکمیل بارگذاری صفحه را مشخص میکند. مگر اینکه خلاف آن ذکر شود، این زمان ۳۰۰,۰۰۰ میلیثانیه است.
شما میتوانید این زمان انتظار را به صورت زیر تنظیم کنید:
await browser.setTimeout({ 'pageLoad': 10000 })
کلیدواژه
pageLoad
بخشی از مشخصات رسمی WebDriver است، اما ممکن است برای مرورگر شما پشتیبانی نشود (نام قبلی آنpage load
است).
زمان انتظار ضمنی جلسه
هر جلسه دارای یک زمان انتظار ضمنی مرتبط است. این زمان، مدت انتظار برای استراتژی مکانیابی ضمنی عناصر هنگام یافتن عناصر با استفاده از دستورات findElement
یا findElements
(به ترتیب $
یا $$
، هنگام اجرای WebdriverIO با یا بدون تسترانر WDIO) را مشخص میکند. مگر اینکه خلاف آن ذکر شود، این زمان ۰ میلیثانیه است.
شما میتوانید این زمان انتظار را به صورت زیر تنظیم کنید:
await browser.setTimeout({ 'implicit': 5000 })