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

زر الراديو في Selenium
يتم تشغيل أزرار الراديو باستخدام click() طريقة، تمامًا مثل أي عنصر ويب آخر في Selenium. لأنه لا يمكن تفعيل سوى خيار واحد في مجموعة الراديو في كل مرة، فإن النقر على خيار ثانٍ يلغي تحديد الخيار الأول تلقائيًا.
باستخدام https://demo.guru99.com/test/radio.html كصفحة تدريبية، لاحظ أن radio1.click() يختار زر الاختيار "الخيار 1". الاتصال radio2.click() ثم يختار "الخيار 2" مع ترك "الخيار 1" غير محدد.
كيفية تحديد خانة اختيار في Selenium
Togglيتم أيضًا تفعيل أو تعطيل خانة الاختيار باستخدام click() الطريقة. يقوم الكود أدناه بالنقر مرتين على مربع اختيار "ابقني مسجلاً" في فيسبوك، ويطبع القيمة TRUE عند تفعيل مربع الاختيار، والقيمة FALSE عند تعطيله.
استخدم isSelected() تُستخدم هذه الطريقة للتأكد مما إذا كان مربع الاختيار قيد التشغيل أو الإيقاف - وهو تأكيد أساسي عند التحقق من صحة حالة النموذج في حالات الاختبار.
إليك صفحة مثال أخرى: https://demo.guru99.com/test/radio.html.
اكتملت 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 أثناء البحث عن العناصر، فهذا يعني أن العنصر لم يكن موجودًا في اللحظة التي وصل فيها برنامج تشغيل الويب إلى الصفحة. استخدم قائمة التحقق أدناه لاستعادة العنصر بسرعة:
- تحقق من محدد الموقع الخاص بك مرة أخرى باستخدام FirePath أو Inspect Element في Chrome.
- تأكد من أن القيمة التي استخدمتها في الكود تتطابق مع القيمة الحالية للعنصر الموجود على الصفحة.
- تحتوي بعض العناصر على سمات ديناميكية، على غرار ما قد تراه عندما اختر من القائمة المنسدلة في Selenium ويب درايفرفي تلك الحالات، يُفضّل
By.xpath()orBy.cssSelector()وهي أكثر موثوقية ولكنها أكثر تعقيداً بعض الشيء. - أحيانًا تكون المشكلة في التوقيت - حيث يقوم برنامج WebDriver بتنفيذ التعليمات البرمجية الخاصة بك قبل اكتمال تحميل الصفحة.
- أضف فترة انتظار قبل
findElement()استخدام الانتظار الضمني أو الصريح لإعطاء العنصر الوقت الكافي للعرض.




