想要在下拉文本框中选择一个值,即所有值,发生错误是发生该错误,元素未选中,但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 全部");
我希望点击所有值
答案 0 :(得分:0)
该下拉列表由 ul 和 li 标记组成,因此来自 Selenium 的Select class
无效。来自{strong>硒的Select class
用于 HTML 中的select tag
。
由于它是由 ul 和 li 组成的,因此您必须将元素存储在列表中并尝试获取Web元素,然后才能尝试单击它。
步骤:
单击下拉菜单。 您必须为此编写代码,因为没有提供HTML。
获取列表中的所有下拉元素。
您可以尝试使用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()