Почему мой код не надежно нажимает на выпадающий пункт меню?Почему мой код не надежно нажимает на выпадающий пункт меню?
- Мой код dosnt надежно нажимает на пункт меню выпадающего меню.
- Например, если я выполнил один и тот же тест 100 раз, 12 тестов потерпит неудачу, потому что метод не будет выбирать намеченный пункт меню, скажем (Mr), даже используя клавиши отправки, возникает одна и та же проблема.
- Я установил время ожидания x30 секунд, ожидая, пока элемент станет видимым, даже ожидая, что элемент будет доступен для клика по той же самой проблеме.
Например смотрите следующий пункт: 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>
Мой код строится из следующих действий:
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()); }
}
Обратитесь к решению представленной здесь. Это поможет вам. http://stackoverflow.com/questions/30184055/selenium-select-value-from-a-drop-down-which-is-dependent-on-value-selected-in – Abhinav