Warum klickt mein Code nicht zuverlässig auf den Dropdown-Menüeintrag?Warum klickt mein Code nicht zuverlässig auf den Dropdown-Menüeintrag?
- Mein Code dosnt zuverlässig auf den gewünschten Dropdown-Menüeintrag.
- Zum Beispiel, wenn ich den gleichen Test 100 mal ausführen, würden 12 der Tests fehlschlagen, weil die Methode den gewünschten Menüpunkt nicht auswählen würde sagen (Mr), auch mit Send-Tasten das gleiche Problem auftritt.
- Ich habe eine Wartezeit von x30 Sekunden warten auf das Element zu sehen, sogar warten auf das Element anklickbar sein das gleiche Problem auftritt.
Zum Beispiel finden Sie im folgenden Artikel dropwdown:
<select id="titlefield" class="form-control ng-pristine ng-untouched ng-invalid ng-invalid-required" name="Salutation" ng-model="PersonalDetails.Salutation" ng-options="salut.id as salut.id for salut in Salutations" ng-required="FlowData.IsGuest" required="required"> <option class="ng-binding" value="">Please select</option> <option value="0" label="Mr.">Mr.</option> <option value="1" label="Miss">Miss</option> <option value="2" label="Mrs.">Mrs.</option> <option value="3" label="Ms.">Ms.</option> <option value="4" label="Dr.">Dr.</option>
Mein Code aus folgendem aufgebaut ist:
public void selectTitleFromDropdownMenu(WebElement dropdown, String textToSearchFor) { Wait<WebDriver> tempWait = new WebDriverWait(this.driver, 30); try { tempWait.until(ExpectedConditions.visibilityOf(dropdown)); List<WebElement> options = dropdown.findElements(By.tagName("option")); Select selectDropdown = new Select(dropdown); for (int i = 0; i < options.size(); i++) { if (options.get(i).getText().equals(textToSearchFor)) { selectDropdown.selectByVisibleText(textToSearchFor); System.out.println("Successfully selected the following text: " + textToSearchFor + ", using the following webelement: " + "<" + dropdown.toString() + ">"); } } }catch(Exception e) { System.out.println("Unable to select the following text: " + textToSearchFor + ", using the following WebElement: " + "<" + dropdown.toString() + ">"); Assert.assertFalse(true, "Unable to select the required text from the dropdown menu, Exception: " + e.getMessage()); }
}
zur Lösung finden Sie hier zur Verfügung gestellt. Es wird dir helfen. http://stackoverflow.com/questions/30184055/selenium-select-value-from-a-drop-down-which-ispendent-on-value-selected-in – Abhinav