AIM Tech

⭐Automation Basics #8⭐

اتكلمنا في البوست الي فات
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