Python Selenium只选择列表框中的一个项目

时间:2016-06-15 16:24:39

标签: python selenium listbox webdriver scrapy

ListBox(不是下拉列表)如下:

<select name="lstym" onChange="SubmitForm(this.form,'ym')" multiple size="5">
    <option value="All" selected>All</option>
    <option value="201601">201601</option>
    <option value="201602">201602</option>
    <option value="201603">201603</option>
    <option value="201604">201604</option>
    <option value="201605">201605</option>
 </select>

Scrapy代码:

 select = Select(driver.find_element_by_name('lstym'))
 for option in select.options:
     #select.deselect_all()
     #select.deselect_by_index(0)
     option.click()

始终选择默认选择的第一项。但是想要只选择一个项目。 select.deselect_all()select.deselect_by_index(0)无效。

解决方案(不好)我发现:

  browser.find_element_by_xpath('//select[@name="lstym"]').click()
  browser.find_element_by_xpath('//option[@value="201601"]').click()

至少删除了默认选定的项All。但总是选择第三项。这对我来说没问题。

1 个答案:

答案 0 :(得分:0)

默认情况下,当您在列表框中选择一个元素时,将取消选择其他元素。因此,您应该只需单击所需的元素,它将取消选择所有其他选项。