كيفية تحديد القيمة من القائمة المنسدلة في Selenium
⚡ ملخص ذكي
حدد القيمة من القائمة المنسدلة في Selenium يستخدم هذا النظام فئة Select المخصصة للتحكم في عناصر HTML SELECT. توفر هذه الفئة طرق selectByVisibleText و selectByValue و selectByIndex التي تختار الخيارات بدقة وتدعم القوائم المنسدلة متعددة الاختيارات.

ما هي فئة Select في Selenium?
استخدم حدد الفئات في Selenium فئة مساعد من org.openqa.selenium.support.ui حزمة تسمح لبرنامج WebDriver بالتفاعل مع HTML <select> العناصر. يعرض طرقًا لتحديد وإلغاء تحديد الخيارات عن طريق النص المرئي أو القيمة أو الفهرس، وللكشف عما إذا كانت القائمة المنسدلة تقبل تحديدات متعددة.
لأن Select هو منتظم Java الفئة، تقوم بإنشاء نسخة باستخدام new قم بتمرير الكلمة المفتاحية وقم بتمرير عنصر الويب الذي يشير إلى <select> علامة على الصفحة.
كيفية تحديد القائمة المنسدلة في Selenium
قبل التعامل مع قائمة منسدلة في Seleniumيلزم القيام بخطوتين:
- قم باستيراد الحزمة org.openqa.selenium.support.ui.Select.
- قم بإنشاء القائمة المنسدلة كـ
Selectالكائن في Selenium برنامج تشغيل الويب.
على سبيل المثال، افتح Mercury صفحة تسجيل الرحلات (https://demo.guru99.com/test/newtours/register.php) وحدد موقع القائمة المنسدلة "البلد".
الخطوة 1) استيراد حزمة Select.
import org.openqa.selenium.support.ui.Select;
الخطوة 2) قم بتعريف عنصر القائمة المنسدلة كمثيل لفئة التحديد. في المثال أدناه، يُطلق على المثيل اسم drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
الخطوة 3) ابدأ بالتحكم في القائمة المنسدلة. استخدم أي دالة من دوال التحديد لاختيار خيار. المثال أدناه يختار "أنتاركتيكا":
drpCountry.selectByVisibleText("ANTARCTICA");
حدد الأساليب في Selenium
توفر فئة Select عدة طرق للتفاعل مع خيارات القائمة المنسدلة. فيما يلي شرح لأكثر خمس طرق شيوعًا.
1) selectByVisibleText() و deselectByVisibleText()
- يحدد أو يلغي تحديد الخيار الذي يتطابق نصه المعروض مع المعلمة.
- المعلمة: النص الدقيق المعروض للخيار.
على سبيل المثال:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() و deselectByValue()
- يحدد أو يلغي تحديد الخيار الذي
valueالسمة تطابق المعامل. - لاحظ أن النص المعروض و
valueغالباً ما تكون السمات مختلفة، كما هو موضح أدناه. - المعلمة: الخيار
valueالسمة.
على سبيل المثال:
drpCountry.selectByValue("234");
3) selectByIndex() و deselectByIndex()
- يحدد أو يلغي تحديد الخيار الموجود في الفهرس المحدد. تبدأ الفهارس من الصفر.
- المعلمة: الفهرس الصحيح للخيار.
على سبيل المثال:
drpCountry.selectByIndex(0);
4) isMultiple()
- سياسات الإرجاع والاستبدال
TRUEإذا كانت القائمة المنسدلة تسمح بتحديد عدة عناصر في نفس الوقت، وإلاFALSE. - المعلمة: لا شيء.
على سبيل المثال:
if (drpCountry.isMultiple()) {
// do something here
}
5) deselectAll()
- يمسح هذا الخيار جميع الخيارات المحددة. يسري هذا الخيار فقط على القوائم المنسدلة متعددة الخيارات.
- المعلمة: لا شيء.
على سبيل المثال:
drpCountry.deselectAll();
اكتملت Code من طرق التحديد في Selenium
ما يلي Java يوضح البرنامج فئة Select في كل من القوائم المنسدلة ذات الاختيار الفردي والقوائم المنسدلة متعددة الاختيارات.
package newpackage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.By;
public class accessDropDown {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe");
String baseURL = "https://demo.guru99.com/test/newtours/register.php";
WebDriver driver = new FirefoxDriver();
driver.get(baseURL);
// Single-select drop-down
Select drpCountry = new Select(driver.findElement(By.name("country")));
drpCountry.selectByVisibleText("ANTARCTICA");
// Multi-select drop-down
driver.get("http://jsbin.com/osebed/2");
Select fruits = new Select(driver.findElement(By.id("fruits")));
fruits.selectByVisibleText("Banana");
fruits.selectByIndex(1);
}
}
تحديد العناصر في عنصر تحديد متعدد
استخدم selectByVisibleText() تعمل هذه الطريقة أيضًا مع القوائم المنسدلة متعددة الاختيارات. على سبيل المثال، استخدم https://jsbin.com/osebed/2 كقاعدة URL. يعرض قائمة منسدلة تقبل اختيارات متعددة في وقت واحد.
تحدد الشفرة أدناه الخيارين الأولين باستخدام selectByVisibleText():
جدول مرجعي للمنهج
يلخص هذا الجدول جميع طرق فئة Select المذكورة أعلاه لتسهيل البحث السريع.
| أمر | الوصف |
|---|---|
| selectByVisibleText() / deselectByVisibleText() | يحدد أو يلغي تحديد خيار من خلال النص المعروض. |
| selectByValue() / deselectByValue() | يحدد أو يلغي تحديد خيار من خلال value السمة. |
| selectByIndex() / deselectByIndex() | يحدد أو يلغي تحديد خيار ما باستخدام فهرسه الذي يبدأ من الصفر. |
| متعدد () | تُرجع القيمة TRUE إذا كانت القائمة المنسدلة تسمح بتحديدات متعددة، وإلا تُرجع القيمة FALSE. |
| الغاء تحديد الكل() | إلغاء تحديد جميع الخيارات المحددة مسبقًا في قائمة منسدلة متعددة الخيارات. |
للتحكم في القوائم المنسدلة، استورد org.openqa.selenium.support.ui.Select قم أولاً بتكوين الحزمة، ثم أنشئ مثيل Select واستدعِ أيًا من الطرق المذكورة أعلاه.

.png)
.png)
.png)
.png)