Πώς να επιλέξετε τιμή από το αναπτυσσόμενο μενού Selenium
⚡ Έξυπνη Σύνοψη
Επιλέξτε Τιμή από το αναπτυσσόμενο μενού στο Selenium χρησιμοποιεί την ειδική κλάση Select για τον έλεγχο των στοιχείων HTML SELECT. Η κλάση εκθέτει τις μεθόδους selectByVisibleText, selectByValue και selectByIndex που επιλέγουν με ακρίβεια επιλογές και υποστηρίζουν αναπτυσσόμενα μενού πολλαπλής επιλογής.

Σε τι είναι η Κλάση Επιλογής; Selenium?
The Επιλέξτε τάξη σε Selenium είναι μια βοηθητική τάξη από το org.openqa.selenium.support.ui πακέτο που επιτρέπει στο WebDriver να αλληλεπιδρά με HTML <select> στοιχεία. Εκθέτει μεθόδους για την επιλογή και την αποεπιλογή επιλογών με ορατό κείμενο, τιμή ή ευρετήριο, καθώς και για την ανίχνευση του εάν ένα αναπτυσσόμενο μενού δέχεται πολλαπλές επιλογές.
Επειδή Select είναι τακτικό Java κλάση, δημιουργείτε μια παρουσία με την new λέξη-κλειδί και να περάσει το WebElement που δείχνει στο <select> ετικέτα στη σελίδα.
Πώς να επιλέξετε Αναπτυσσόμενο σε Selenium
Πριν από τον χειρισμό ενός αναπτυσσόμενου μενού Selenium, απαιτούνται δύο βήματα:
- Εισαγάγετε το πακέτο org.openqa.selenium.support.ui.Select.
- Δημιουργήστε το αναπτυσσόμενο μενού ως
Selectαντικείμενο μέσα Selenium WebDriver.
Για παράδειγμα, ανοίξτε το Mercury Σελίδα εγγραφής εκδρομών (https://demo.guru99.com/test/newtours/register.php) και εντοπίστε το αναπτυσσόμενο μενού «Χώρα».
Βήμα 1) Εισαγάγετε το πακέτο Select.
import org.openqa.selenium.support.ui.Select;
Βήμα 2) Δηλώστε το αναπτυσσόμενο στοιχείο ως παρουσία της κλάσης Select. Στο παρακάτω παράδειγμα, η παρουσία ονομάζεται 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) είναιΠολλαπλή()
- Επιστροφές
TRUEαν το αναπτυσσόμενο μενού επιτρέπει πολλαπλές επιλογές ταυτόχρονα, διαφορετικάFALSE. - παράμετρος: κανένας.
Παράδειγμα:
if (drpCountry.isMultiple()) {
// do something here
}
5) αποεπιλογήΌλων()
- Διαγράφει κάθε επιλεγμένη επιλογή. Ισχύει μόνο σε αναπτυσσόμενα μενού πολλαπλής επιλογής.
- παράμετρος: κανένας.
Παράδειγμα:
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);
}
}
Επιλογή στοιχείων σε ένα στοιχείο πολλαπλής επιλογής
The selectByVisibleText() Η μέθοδος λειτουργεί επίσης σε αναπτυσσόμενα μενού πολλαπλής επιλογής. Για παράδειγμα, χρησιμοποιήστε https://jsbin.com/osebed/2 όπως η βάση URLΕμφανίζει ένα αναπτυσσόμενο μενού που δέχεται πολλαπλές επιλογές ταυτόχρονα.
Το παρακάτω απόσπασμα επιλέγει τις δύο πρώτες επιλογές χρησιμοποιώντας selectByVisibleText():
Πίνακας αναφοράς μεθόδου
Αυτός ο πίνακας συνοψίζει κάθε μέθοδο Select-class που καλύπτεται παραπάνω για γρήγορη αναζήτηση.
| εντολή | Περιγραφή |
|---|---|
| επιλέξτεΜεΟρατόΚείμενο() / αποεπιλέξτεΜεΟρατόΚείμενο() | Επιλέγει ή αποεπιλέγει μια επιλογή με βάση το εμφανιζόμενο κείμενό της. |
| επιλογήΜεΑξία() / αποεπιλογήΜεΑξία() | Επιλέγει ή αποεπιλέγει μια επιλογή από την value αποδίδουν. |
| selectByIndex() / deselectByIndex() | Επιλέγει ή αποεπιλέγει μια επιλογή με βάση τον δείκτη που βασίζεται στο μηδέν. |
| isMultiple() | Επιστρέφει την τιμή TRUE εάν το αναπτυσσόμενο μενού επιτρέπει πολλαπλές επιλογές, διαφορετικά επιστρέφει την τιμή FALSE. |
| αποεπιλογή όλων() | Αποεπιλέγει όλες τις προηγουμένως επιλεγμένες επιλογές σε ένα αναπτυσσόμενο μενού πολλαπλής επιλογής. |
Για να ελέγξετε τα αναπτυσσόμενα πλαίσια, εισαγάγετε το org.openqa.selenium.support.ui.Select πρώτα το πακέτο, στη συνέχεια δημιουργήστε μια παρουσία Select και καλέστε οποιαδήποτε από τις παραπάνω μεθόδους.

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