"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > فهم الانتظار في السيلينيوم 4

فهم الانتظار في السيلينيوم 4

تم النشر بتاريخ 2024-08-23
تصفح:147

Understanding Waits in Selenium 4

في هذا المنشور، سنستكشف الأنواع المختلفة من فترات الانتظار في السيلينيوم 4، بما في ذلك التحسينات الجديدة وأفضل الممارسات لاستخدامها.

أنواع الانتظار في السيلينيوم 4
يوفر السيلينيوم 4 ثلاثة أنواع رئيسية من الانتظار:

  1. الانتظار الضمني
  2. الانتظار الصريح
  3. الإنتظار السلس

دعونا نتعمق في كل واحدة منها!

  1. الانتظار الضمني الانتظار الضمني هو أبسط أنواع الانتظار. يطلبون من WebDriver الانتظار لفترة معينة من الوقت عند محاولة العثور على عنصر إذا لم يكن متاحًا على الفور. بمجرد تحديد الوقت، فإنه ينطبق عالميًا على جميع العناصر في الاختبار. مثال الكود:
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

في هذا المثال، سينتظر السيلينيوم لمدة تصل إلى 10 ثوانٍ حتى يظهر العنصر قبل طرح NoSuchElementException. ينطبق الانتظار على كل عنصر بحث خلال الجلسة بأكملها.

الايجابيات:

سهل التنفيذ.
مناسبة للمشاريع البسيطة.
السلبيات:

يمكن أن يبطئ تنفيذ الاختبار لأنه يطبق الانتظار عالميًا، حتى لو لم تكن هناك حاجة إليه.
يمكن أن يؤدي إلى سلوك اختبار غير متوقع عند استخدامه مع أنواع الانتظار الأخرى.

  1. انتظار صريح يتيح لك الانتظار الصريح ضبط الشروط لعناصر معينة. يمكنك إخبار WebDriver بالانتظار حتى يتم استيفاء شرط معين قبل المتابعة. يعد هذا الانتظار أكثر تفصيلاً ويمنحك تحكمًا أكبر في أوقات الانتظار.

مثال الكود:

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15));
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("example")));

في هذا المثال، سينتظر WebDriver ما يصل إلى 15 ثانية حتى يصبح العنصر مرئيًا. إذا ظهر العنصر قبل 15 ثانية، ينتهي الانتظار مبكرًا.

شروط الانتظار الصريحة الشائعة:

رؤية العنصر الموجود ()
elementToBeClickable()
وجودOfElementLocation()
تنبيهIsPresent()
الايجابيات:

قابلة للتخصيص بدرجة عالية وأكثر كفاءة من الانتظار الضمني.
ينتظر فقط عند الحاجة إلى شروط محددة.
السلبيات:

يتطلب المزيد من التعليمات البرمجية، مما قد يزيد من التعقيد.
يمكن أن تصبح إدارة فترات الانتظار الصريحة المتعددة أمرًا صعبًا في المشاريع الكبيرة.

  1. ينتظر بطلاقة يعد Fluent Waits إصدارًا متقدمًا من عمليات الانتظار الصريحة. إنها تسمح لك بتحديد الحد الأقصى لوقت الانتظار، والفاصل الزمني للاستقصاء، ومعالجة الاستثناءات. يعد الانتظار السلس مفيدًا عند التعامل مع المحتوى الديناميكي الذي يتطلب عمليات فحص متكررة.
Wait fluentWait = new FluentWait(driver)
    .withTimeout(Duration.ofSeconds(20))
    .pollingEvery(Duration.ofMillis(500))
    .ignoring(NoSuchElementException.class);

WebElement element = fluentWait.until(driver -> driver.findElement(By.id("example")));

هنا، سيقوم WebDriver بالتحقق من العنصر كل 500 مللي ثانية وينتظر ما يصل إلى 20 ثانية قبل انتهاء المهلة. سيتم أيضًا تجاهل NoSuchElementException خلال هذا الوقت.

الايجابيات:

يوفر المزيد من المرونة والتحكم في كيفية التعامل مع الانتظار.
يسمح بتخصيص فترات الاستقصاء ومعالجة الاستثناءات.
السلبيات:

يمكن أن يكون الإعداد والفهم أكثر تعقيدًا.
يمكن أن يؤدي التخصيص المفرط إلى تعليمات برمجية مربكة ويصعب الحفاظ عليها.
تحسينات في السيلينيوم 4 انتظر
يقدم السيلينيوم 4 بعض التحسينات، خاصة في كيفية إدارة فترات الانتظار:

بناء جملة أفضل: يستخدم السيلينيوم 4 المدة بدلاً من TimeUnit السابقة، مما يجعلها أكثر سهولة وقابلية للقراءة.
محددات المواقع النسبية: يمكنك الآن انتظار العناصر المتعلقة بالعناصر الأخرى (على سبيل المثال، على يسار، بالقرب، وما إلى ذلك).
WebDriverWait المحسّن: تعتبر فئة WebDriverWait في السيلينيوم 4 أكثر بساطة وأسهل في الاستخدام مع بناء الجملة الحديث.

أفضل الممارسات لاستخدام الانتظار في السيلينيوم 4
استخدم الانتظار الصريح بدلاً من الانتظار الضمني: للحصول على تحكم وأداء أفضل، تفضل الانتظار الصريح، خاصة في السيناريوهات المعقدة.
تجنب الخلط بين فترات الانتظار الضمنية والصريحة: يمكن أن يؤدي استخدام كليهما إلى سلوك غير متوقع وزيادة أوقات الانتظار.

تعيين قيم المهلة المعقولة: تجنب تعيين فترات انتظار طويلة غير ضرورية. قم بتحليل سلوك التطبيق الخاص بك لتحديد أوقات الانتظار المناسبة.

استخدام الانتظار السلس للعناصر الديناميكية: إذا كانت العناصر ديناميكية للغاية، فكر في استخدام الانتظار السلس مع فترات الاستقصاء لتقليل الانتظار غير الضروري.

خاتمة
يعد التعامل مع فترات الانتظار بفعالية في السيلينيوم 4 أمرًا بالغ الأهمية لكتابة اختبارات آلية مستقرة وموثوقة. إن فهم متى وكيف يتم استخدام الانتظار الضمني والصريح والطلاق يمكن أن يحسن بشكل كبير من قوة مجموعة الاختبار الخاصة بك. ومع التحسينات في السيلينيوم 4، لديك أدوات أكثر قوة لإدارة مشكلات المزامنة.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/saleem919/understanding-waits-in-selenium-4-48e2?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3