είμαι νέος στο selenium , προς το παρόν εργάζομαι στο selenium webdriver θέλω να επιλέξω μια τιμή από το drop down. Το id=periodId και η επιλογή είναι πολλές σε αυτό προσπαθώ να επιλέξω τις τελευταίες 52 εβδομάδες.
Εδώ είναι ο κώδικας HTML:
<select id="periodId" name="period" style="display: none;">
<option value="l4w">Last 4 Weeks</option>
<option value="l52w">Last 52 Weeks</option>
<option value="daterange">Date Range</option>
<option value="weekrange">Week Range</option>
<option selected="" value="monthrange">Month Range</option>
<option value="yeartodate">Year To Date</option>
</select>
Παρακαλώ προτείνετέ μου μερικούς τρόπους για να κάνω κλικ στο drop down.
Δοκίμασα με τις παραπάνω γραμμές του παραδείγματος αλλά λαμβάνω σφάλμα όπως Element is not currently visible and so may not be interacted with Διάρκεια εντολής ή χρονικό όριο: 32 χιλιοστά του δευτερολέπτου οι τιμές των drop downs είναι η μορφή του widget jquery multiselect.
Απλά τυλίξτε το WebElement σας σε Select Object όπως φαίνεται παρακάτω
Select dropdown = new Select(driver.findElement(By.id("identifier")));
Μόλις γίνει αυτό μπορείτε να επιλέξετε την απαιτούμενη τιμή με 3 τρόπους. Σκεφτείτε ένα αρχείο HTML όπως αυτό
<html>
<body>
<select id = "designation">
<option value = "MD">MD</option>
<option value = "prog"> Programmer </option>
<option value = "CEO"> CEO </option>
</option>
</select>
<body>
</html>
Τώρα για να προσδιορίσετε το πτυσσόμενο μενού κάντε
Select dropdown = new Select(driver.findElement(By.id("ονομασία")));
Για να επιλέξετε την επιλογή του, ας πούμε 'Προγραμματιστής' μπορείτε να κάνετε
dropdown.selectByVisibleText("Programmer ");
ή
dropdown.selectByIndex(1);
ή
dropdown.selectByValue("prog");
Δοκιμάστε αυτό:
driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");