في هذا المنشور، سنستكشف الأنواع المختلفة من فترات الانتظار في السيلينيوم 4، بما في ذلك التحسينات الجديدة وأفضل الممارسات لاستخدامها.
أنواع الانتظار في السيلينيوم 4
يوفر السيلينيوم 4 ثلاثة أنواع رئيسية من الانتظار:
دعونا نتعمق في كل واحدة منها!
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
في هذا المثال، سينتظر السيلينيوم لمدة تصل إلى 10 ثوانٍ حتى يظهر العنصر قبل طرح NoSuchElementException. ينطبق الانتظار على كل عنصر بحث خلال الجلسة بأكملها.
الايجابيات:
سهل التنفيذ.
مناسبة للمشاريع البسيطة.
السلبيات:
يمكن أن يبطئ تنفيذ الاختبار لأنه يطبق الانتظار عالميًا، حتى لو لم تكن هناك حاجة إليه.
يمكن أن يؤدي إلى سلوك اختبار غير متوقع عند استخدامه مع أنواع الانتظار الأخرى.
مثال الكود:
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15)); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("example")));
في هذا المثال، سينتظر WebDriver ما يصل إلى 15 ثانية حتى يصبح العنصر مرئيًا. إذا ظهر العنصر قبل 15 ثانية، ينتهي الانتظار مبكرًا.
شروط الانتظار الصريحة الشائعة:
رؤية العنصر الموجود ()
elementToBeClickable()
وجودOfElementLocation()
تنبيهIsPresent()
الايجابيات:
قابلة للتخصيص بدرجة عالية وأكثر كفاءة من الانتظار الضمني.
ينتظر فقط عند الحاجة إلى شروط محددة.
السلبيات:
يتطلب المزيد من التعليمات البرمجية، مما قد يزيد من التعقيد.
يمكن أن تصبح إدارة فترات الانتظار الصريحة المتعددة أمرًا صعبًا في المشاريع الكبيرة.
WaitfluentWait = 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، لديك أدوات أكثر قوة لإدارة مشكلات المزامنة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3