حدد زر الراديو وتحققBox in Selenium

⚡ ملخص ذكي

حدد زر الراديو وتحققBox in Selenium يغطي هذا الدليل تقنيات WebDriver لأتمتة اثنين من أكثر عناصر التحكم شيوعًا في النماذج. يشرح هذا الدليل كيفية قيام الدالتين click() و isSelected() بتبديل أزرار الاختيار ومربعات الاختيار، ويستعرض كيفية عملهما. Java يقدم هذا الدليل نصائح حول استكشاف الأخطاء وإصلاحها للمحددات الهشة.

  • 🔘 زر الراديو Toggle: استخدم طريقة click() على عنصر الويب لتحديد زر الاختيار؛ سيؤدي تحديد خيار آخر إلى إلغاء تحديد الخيار السابق تلقائيًا.
  • ☑️ صندوق الاختيار Toggle: تقوم نفس طريقة click() بتشغيل وإيقاف مربع الاختيار؛ استدعاءها مرتين يعيد المربع إلى حالته الأصلية.
  • التحقق الحكومي: قم باستدعاء الدالة isSelected() لتأكيد حالة التبديل الحالية والتحقق من أن القيمة TRUE للعناصر المحددة و FALSE للعناصر غير المحددة.
  • 🧪 العمل Java على سبيل المثال: يقود البرنامج الكامل Guru99 عرض توضيحي ومربع اختيار تسجيل الدخول المستمر على فيسبوك لتوضيح كلا المسارين.
  • 🛠️ محددات المواقع الموثوقة: قم بالتبديل إلى By.xpath() أو By.cssSelector() عندما تتغير المعرفات ديناميكيًا وأضف فترات انتظار صريحة لمنع NoSuchElementException.

حدد زر الراديو وتحققBox in Selenium

زر الراديو في Selenium

يتم تشغيل أزرار الراديو باستخدام click() طريقة، تمامًا مثل أي عنصر ويب آخر في Selenium. لأنه لا يمكن تفعيل سوى خيار واحد في مجموعة الراديو في كل مرة، فإن النقر على خيار ثانٍ يلغي تحديد الخيار الأول تلقائيًا.

باستخدام https://demo.guru99.com/test/radio.html كصفحة تدريبية، لاحظ أن radio1.click() يختار زر الاختيار "الخيار 1". الاتصال radio2.click() ثم يختار "الخيار 2" مع ترك "الخيار 1" غير محدد.

اختيار زر الراديو على Guruصفحة العرض التوضيحي 99

كيفية تحديد خانة اختيار في Selenium

Togglيتم أيضًا تفعيل أو تعطيل خانة الاختيار باستخدام click() الطريقة. يقوم الكود أدناه بالنقر مرتين على مربع اختيار "ابقني مسجلاً" في فيسبوك، ويطبع القيمة TRUE عند تفعيل مربع الاختيار، والقيمة FALSE عند تعطيله.

Selenium انقر على زر "ابقني مسجلاً" في فيسبوك

مخرجات وحدة التحكم تُظهر حالة تبديل خانة الاختيار

استخدم isSelected() تُستخدم هذه الطريقة للتأكد مما إذا كان مربع الاختيار قيد التشغيل أو الإيقاف - وهو تأكيد أساسي عند التحقق من صحة حالة النموذج في حالات الاختبار.

إليك صفحة مثال أخرى: https://demo.guru99.com/test/radio.html.

Selenium كود للتحقق من حالة خانة الاختيار باستخدام الدالة isSelected()

اكتملت Code مثال

إليكم الكود الكامل الذي يعمل على تبديل كل من أزرار الاختيار ومربع اختيار "حفظ تسجيل الدخول" الخاص بفيسبوك.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;

public class Form {
    public static void main(String[] args) {

        // Declaration and instantiation of objects and variables
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get("https://demo.guru99.com/test/radio.html");
        WebElement radio1 = driver.findElement(By.id("vfb-7-1"));
        WebElement radio2 = driver.findElement(By.id("vfb-7-2"));

        // Radio Button 1 is selected
        radio1.click();
        System.out.println("Radio Button Option 1 Selected");

        // Radio Button 1 is de-selected and Radio Button 2 is selected
        radio2.click();
        System.out.println("Radio Button Option 2 Selected");

        // Selecting Checkbox
        WebElement option1 = driver.findElement(By.id("vfb-6-0"));

        // This will toggle the checkbox
        option1.click();

        // Check whether the checkbox is toggled on
        if (option1.isSelected()) {
            System.out.println("Checkbox is Toggled On");
        } else {
            System.out.println("Checkbox is Toggled Off");
        }

        // Selecting a Checkbox and using the isSelected method
        driver.get("https://demo.guru99.com/test/facebook.html");
        WebElement chkFBPersist = driver.findElement(By.id("persist_box"));
        for (int i = 0; i < 2; i++) {
            chkFBPersist.click();
            System.out.println("Facebook Persists Checkbox Status is - " + chkFBPersist.isSelected());
        }
        // driver.close();
    }
}

فحص الجهاز

إذا واجهت NoSuchElementException أثناء البحث عن العناصر، فهذا يعني أن العنصر لم يكن موجودًا في اللحظة التي وصل فيها برنامج تشغيل الويب إلى الصفحة. استخدم قائمة التحقق أدناه لاستعادة العنصر بسرعة:

  1. تحقق من محدد الموقع الخاص بك مرة أخرى باستخدام FirePath أو Inspect Element في Chrome.
  2. تأكد من أن القيمة التي استخدمتها في الكود تتطابق مع القيمة الحالية للعنصر الموجود على الصفحة.
  3. تحتوي بعض العناصر على سمات ديناميكية، على غرار ما قد تراه عندما اختر من القائمة المنسدلة في Selenium ويب درايفرفي تلك الحالات، يُفضّل By.xpath() or By.cssSelector()وهي أكثر موثوقية ولكنها أكثر تعقيداً بعض الشيء.
  4. أحيانًا تكون المشكلة في التوقيت - حيث يقوم برنامج WebDriver بتنفيذ التعليمات البرمجية الخاصة بك قبل اكتمال تحميل الصفحة.
  5. أضف فترة انتظار قبل findElement() استخدام الانتظار الضمني أو الصريح لإعطاء العنصر الوقت الكافي للعرض.

الأسئلة الشائعة

استخدم الدالة click() على عنصر WebElement نفسه لإلغاء تحديد خانة الاختيار. لا توجد دالة مخصصة لإلغاء التحديد. استخدم الدالة isSelected() قبل النقر إذا كنت ترغب في إلغاء التحديد فقط عندما تكون خانة الاختيار محددة، مما يحافظ على سلامة منطق الاختبار.

تُرجع الدالة isSelected() القيمة true عند تحديد خانة اختيار أو زر اختيار. بينما تُرجع الدالة isEnabled() القيمة true عندما يكون العنصر قابلاً لإدخال المستخدم. لكل منهما غرض مختلف: تتحقق الدالة isSelected() من حالة العنصر، بينما تتحقق الدالة isEnabled() من إمكانية تفاعل المستخدم مع العنصر.

استخدم الدالة findElements() مع مُحدِّد موقع مثل By.xpath(“//input[@type='checkbox']”) للحصول على جميع عناصر WebElements الخاصة بمربعات الاختيار، ثم مرِّر عبر القائمة، وتحقق من isSelected()، واستدعِ الدالة click() فقط على العناصر غير المُحدَّدة. هذا يمنع إلغاء تحديد المربعات المُحدَّدة عن طريق الخطأ.

تُنشئ المساعدات المدعومة بالذكاء الاصطناعي استراتيجيات تحديد المواقع، وتُصلح مُحدِّدات الاختيار تلقائيًا عند تغيير المعرّفات، وتقترح تأكيدات لحالة أزرار الاختيار ومربعات الاختيار. كما تُنشئ أدوات الذكاء الاصطناعي تلقائيًا اختبارات شاملة لملء النماذج من تسجيلات الشاشة، مما يُقلل من جهد البرمجة اليدوية وصيانة الاختبارات.

نعم. مدعوم بالذكاء الاصطناعي Selenium تقوم الأدوات بتحليل نموذج كائن المستند (DOM)، وتعلّم السمات الثابتة، وإعادة كتابة مُحدِّدات XPath أو CSS عند تغيير المعرّفات بين الإصدارات. تضمن هذه الخاصية ذاتية الإصلاح نجاح اختبارات عناصر التحكم في النماذج دون الحاجة إلى تحديثات يدوية للمُحدِّدات بعد كل تعديل في واجهة المستخدم.

تلخيص هذه التدوينة بـ: