Я не могу выбрать страну из раскрывающегося списка страна в selenium webdriver

wait1.until(ExpectedConditions.elementToBeClickable(countryDrpDwn));
        Actions act=new Actions(driver);
        act.moveToElement(countryDrpDwn).build().perform();
        countryDrpDwn.click();

Это список HTML и пожалуйста см. Приложение:

    <li class="k-item" data-offset-index="225" unselectable="on" role="option" tabindex="-1">Tokelau</li>
    <li class="k-item" data-offset-index="226" unselectable="on" role="option" tabindex="-1">Tonga</li>
    <li class="k-item" data-offset-index="227" unselectable="on" role="option" tabindex="-1">Trinidad and Tobago</li>
    <li class="k-item" data-offset-index="228" unselectable="on" role="option" tabindex="-1">Tunisia</li>
    <li class="k-item" data-offset-index="229" unselectable="on" role="option" tabindex="-1">Turkey</li>
    <li class="k-item" data-offset-index="230" unselectable="on" role="option" tabindex="-1">Turkmenistan</li>
    <li class="k-item" data-offset-index="231" unselectable="on" role="option" tabindex="-1">Turks and Caicos Islands</li>
    <li class="k-item" data-offset-index="232" unselectable="on" role="option" tabindex="-1">Tuvalu</li>
    <li class="k-item" data-offset-index="233" unselectable="on" role="option" tabindex="-1">Uganda</li>
    <li class="k-item" data-offset-index="234" unselectable="on" role="option" tabindex="-1">Ukraine</li>
    <li class="k-item" data-offset-index="235" unselectable="on" role="option" tabindex="-1">United Arab Emirates</li>
    <li class="k-item" data-offset-index="236" unselectable="on" role="option" tabindex="-1">United Kingdom of Great Britain and Northern Ireland</li>
    <li class="k-item" data-offset-index="237" unselectable="on" role="option" tabindex="-1">United States Minor Outlying Islands</li>
    <li class="k-item" data-offset-index="238" unselectable="on" role="option" tabindex="-1">United States of America</li>
    <li class="k-item" data-offset-index="239" unselectable="on" role="option" tabindex="-1">Uruguay</li>

Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

1 ответ

  1. Основываясь на предоставленных изображениях, поле Country является <input type="text">. Обычно это означает, что требуемый текст может быть введен непосредственно в поле с помощью sendKeys. Пример кода:

    driver.findElement(By.xpath("//input[@name='ddlPriCountry_input']")).clear();
    driver.findElement(By.xpath("//input[@name='ddlPriCountry_input']")).sendKeys("Australia");
    

    Более подробную информацию можно найти в ответе здесь: Как выполнить выпадающее меню в проекте BMC с помощью Webdriver

    Принцип остается прежним. То, что вам нужно сделать, это определить xpaths для ссылки на теги li. i.e если есть конкретная необходимость, которая требует щелчка по раскрывающемуся списку и выбора значения из списка автозаполнения, то вы выполняете щелчок, ждете загрузки списка и используете следующий xpath для щелчка по стране:

    //li[.='Australia']
    

    PS Если приложение не поддерживает его, я не вижу причины, по которой вы не можете просто сделать sendKeysэлемент с правильным значением

    Кроме того, в случае возникновения проблем, clear()и sendKeysвам может потребоваться нажать на inputпервый с помощью этого:

    driver.findElement(By.xpath("//input[@name='ddlPriCountry_input']")).click();