При выборе выпадающего текстового поля произошла ошибка: элемент должен был быть «выбран», но был «span» - PullRequest
0 голосов
/ 10 октября 2019

Хотите выбрать значение в раскрывающемся текстовом поле, которое представляет собой все значение, что происходит, если он выдает ошибку, элемент не был выбран, но div / span

Пробный выбор раскрывающегося списка

<div id="ddllocation_chzn" class="chzn-container chzn-container-single" style="width: 398px;"><a href="javascript:void(0)" class="chzn-single" tabindex="-1"><span>ALL 全部</span><div><b></b></div></a>
<div class="chzn-drop" style="left: -9000px; width: 396.008px; top: 24px;">
    <div class="chzn-search">
        <input type="text" autocomplete="off" style="width: 361.016px;">
    </div>
    <ul class="chzn-results">
        <li id="ddllocation_chzn_o_0" class="active-result result-selected" style=""><em>A</em>LL 全部</li>
        <li id="ddllocation_chzn_o_1" class="active-result" style="">Quirino Br<em>a</em>nch Main</li>
        <li id="ddllocation_chzn_o_2" class="active-result" style="">Br<em>a</em>nch 1</li>
        <li id="ddllocation_chzn_o_3" class="active-result" style="">Br<em>a</em>nch 2</li>
        <li id="ddllocation_chzn_o_4" class="active-result" style="">Br<em>a</em>nch 3</li>
        <li id="ddllocation_chzn_o_5" class="active-result" style="">Br<em>a</em>nch 4</li>
    </ul>
</div>

driver.findElement(By.xpath("//span[contains(text(),'Quirino Branch Main')]")).click();
    WebElement location = driver.findElement(By.xpath("//span[contains(text(),'Quirino Branch Main')]"));
    location.click();   

    WebElement Dropdown = driver.findElement(By.xpath("//span[contains(text(),'Quirino Branch Main')]"));
    Select SelectDropdown= new Select(Dropdown);
    SelectDropdown.selectByVisibleText("ALL 全部");

Я ожидаю, чтобы щелкнуть все значение

1 Ответ

0 голосов
/ 10 октября 2019

Этот раскрывающийся список состоит из тегов ul и li , поэтому Select class из Selenium не будет работать. Select class из селен предназначен для select tag в HTML .

, поскольку он состоит из ul и li , вам нужно сохранить элементы в списке и попытаться получить веб-элементы, а затем вы можете попробовать щелкнуть по нему.

Шаги:

  1. Нажмите на раскрывающийся список. Вы должны написать код для этого, так как HTML не предоставляется.

  2. Получить все выпадающие элементы в списке.

Вы можете попробовать li[id^='ddllocation_chzn'] locator, чтобы получить все элементы в списке следующим образом:

  drop_down = driver.find_elements_by_css_selector('li[id^='ddllocation_chzn']')  
    for drop in drop_down: 
        if drop.text == 'Branch 2':
           drop.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...