Мне нужно выбрать адрес из автоматического полного выпадающего списка в selenium webdriver.Autocomplete Выпадающий ящик selenium webdriver
Я добавил источник инспектировать элемент из выпадающего списка, как следует,
<div id="wrapper">
<ul id="ui-id-1" class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all" tabindex="0" style="display: none;"/>
<div class="k-widget k-window" style="padding-top: 33px; min-width: 90px; min-height: 50px; width: 200px; display: none; top: 600px; left: 5px;" data-role="draggable">
<div class="k-widget k-window" style="padding-top: 33px; min-width: 90px; min-height: 50px; width: 200px; display: none; top: 600px; left: 5px;" data-role="draggable">
<div class="k-widget k-window" style="padding-top: 33px; min-width: 90px; min-height: 50px; width: 200px; display: none; top: 600px; left: 5px;" data-role="draggable">
<div class="datepicker datepicker-dropdown dropdown-menu" style="display: none;">
<div class="datepicker datepicker-dropdown dropdown-menu" style="display: none;">
<div class="datepicker datepicker-dropdown dropdown-menu" style="display: none;">
<div class="datepicker datepicker-dropdown dropdown-menu" style="display: none;">
<div class="datepicker datepicker-dropdown dropdown-menu" style="display: none;">
<div class="datepicker datepicker-dropdown dropdown-menu" style="display: none;">
<ul id="ui-id-2" class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all" tabindex="0" style="display: none;"/>
<ul id="ui-id-3" class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all" tabindex="0" style="display: none; width: 540px; top: 694.783px; left: 510px;">
<li class="ui-menu-item" role="presentation">
<a id="ui-id-704" class="ui-corner-all" tabindex="-1">SYDNEY, New South Wales, Australia, 1001</a>
</li>
<li class="ui-menu-item" role="presentation">
<a id="ui-id-705" class="ui-corner-all" tabindex="-1">SYDNEY, New South Wales, Australia, 1002</a>
</li>
<li class="ui-menu-item" role="presentation">
<a id="ui-id-706" class="ui-corner-all" tabindex="-1">SYDNEY, New South Wales, Australia, 1003</a>
</li>
<li class="ui-menu-item" role="presentation">
<a id="ui-id-707" class="ui-corner-all" tabindex="-1">SYDNEY, New South Wales, Australia, 1005</a>
</li>
<li class="ui-menu-item" role="presentation">
<li class="ui-menu-item" role="presentation">
Мне нужно, чтобы выбрать «Сидней, Новый Южный Уэльс, Австралия, 1001» выпадающий значение из поля автозаполнения. Пожалуйста, предложите мне некоторые идеи. Я использовал следующий код, но он не работает,
driver.findElement(By.id("HomeAddress_AddressLine1")).sendKeys("Walker Street");
driver.findElement(By.id("HomeAddress_City")).click();
driver.findElement(By.id("HomeAddress_City")).sendKeys("sydney");
Thread.sleep(3000);
WebElement select = driver.findElement(By.id("ui-id-3"));
java.util.List<WebElement> options = select.findElements(By.tagName("li"));
for (WebElement option1 : options) {
if("SYDNEY, New South Wales, Australia, 1001".equals(option1.getText().trim()))
option1.click();
}
Thread.sleep(2000);
Просьба предложить мне, как получить эти значения. Проблема здесь в значении id ui-id-3 меняется каждый раз, когда страница перезагружается i.e (например, ui-id-12, ui-id-18). Я прилагаю скриншоты страницы вместе с этим.
Выбор класса не будет работать, потому что здесь нет выбора класса присутствует в DOM. Вы должны использовать либо xpath, либо CSS, чтобы заставить его работать – thebadguy