اتكلمنا في البوست الي فات
https://lnkd.in/dWz8jK2E
عن ال explicit wait وعرفنا المشاكل اللي كانت موجودة في الـ Implicit Wait، وإزاي الـ Explicit Wait حلها، زي إنه:
🔹 بيرتبط بـعنصر معين بعينه.
🔹 بيسمح لك تتحكم في الشرط اللي مستني يتحقق عن طريق ExpectedConditions .
🔹 وبيعمل Polling كل 500ms بشكل تلقائي زي ال implicit wait .
وفي آخر البوست سألنا سؤال مهم:
لو أنا عارف إن الـ element بيظهر كل 700ms، هعمل إيه؟!
يجي هنا يا صديقي دور
📌ال fluent wait
ال Advanced&customizable form of explicit wait.
يعني ايه يعني customizable wait؟!🤔يعني حاجه كدا على مزاجك يا صديقي😁
كلمة customizable يعني تقدر تتحكم فيه علي مزاجك.
اتحكم في ايه بالظبط؟!
🔹تقدر تتحكم في ال polling time🤷
مش بس كدا، لا كمان
🔹تقدر تعمل exception handling.
تاخد الكبيره؟!
🔹تقدر تتحكم في ال condition🌝
طب ما انا بقدر اصلا اعمل دا مع explicit wait بال Expected conditions😏
بس مش دا التحكم الي اقصده، انت هنا تقدر تسخدم lambda expressions علشان تخترع الشرط الي هتستناه يتحقق،
دا انت كمان تقدر تبني method مكان الشرط دا.
طب ازاي؟!😯
تعالي الاول نشوف ازاي بنعرف fluent wait ونحدد معاه ال polling time وال exception الي هنعمله handling
Wait wait = new FluentWait<>(driver)
.withTimeout(Duration.ofSeconds(30))
.pollingEvery(Duration.ofSeconds(5))
.ignoring(NoSuchElementException.class);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(“myElement”));
);
انا هنا بعرف ال driver اننا محتاجين نستني مده اقصاها ٣٠ ثانيه،
وهنروح نشيك علي ال condition كل ٥ ث،
ولو حصل NoSuchElement exception سيبك منه وكمل زي ما انت شغال.
طب انا كدا عرفت ازاي هتحكم في ال polling time و كمان أعمل exception handling، بس ازاي هتحكم ف الشرط من غير Expected condition؟!
Created by Mohammed Samir Post
يجب أنت تكون مسجل الدخول لتضيف تعليقاً.