选择产生的下拉文本框错误是元素应为“选择”但为“跨度”

时间:2019-10-10 03:58:59

标签: selenium

想要在下拉文本框中选择一个值,即所有值,发生错误是发生该错误,元素未选中,但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 :(得分:0)

该下拉列表由 ul li 标记组成,因此来自 Selenium Select class无效。来自{strong>硒的Select class用于 HTML 中的select tag

由于它是由 ul li 组成的,因此您必须将元素存储在列表中并尝试获取Web元素,然后才能尝试单击它。

步骤:

  1. 单击下拉菜单。 您必须为此编写代码,因为没有提供HTML。

  2. 获取列表中的所有下拉元素。

您可以尝试使用li[id^='ddllocation_chzn']定位器来获取列表中的所有元素,例如:

  drop_down = driver.find_elements_by_css_selector('li[id^='ddllocation_chzn']')  
    for drop in drop_down: 
        if drop.text == 'Branch 2':
           drop.click()