如何使用带Python的Selenium Webdriver从ul li下拉列表中获取所有选项?

如何使用带Python的Selenium Webdriver从ul li下拉列表中获取所有选项?,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我正在处理的项目将下拉列表从简单更改为ulli。在此之前,要从下拉列表中删除所有选项,我将执行以下操作: myList = [] el = browser.find_element_by_id('Filter_ClientDistrict') for option in el.find_elements_by_tag_name('option'): myList.append(option.get_attribute("value")) 如果同一下拉列表的代码如下所示,如何从中删除所

我正在处理的项目将下拉列表从简单更改为ulli。在此之前,要从下拉列表中删除所有选项,我将执行以下操作:

myList = [] 
el = browser.find_element_by_id('Filter_ClientDistrict')
for option in el.find_elements_by_tag_name('option'):
    myList.append(option.get_attribute("value"))
如果同一下拉列表的代码如下所示,如何从中删除所有选项:

应该是

browser.find_element_by_css_selector('#Filter_ClientDistrict button.dropdown-toggle').click()
WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#Filter_ClientDistrict ul li"))
    myList = [] 
    el = browser.find_element_by_id('Filter_ClientDistrict')
    for option in el.find_elements_by_css_selector('ul li'):
        myList.append(option.get_attribute("innerText").strip())
应该是

browser.find_element_by_css_selector('#Filter_ClientDistrict button.dropdown-toggle').click()
WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#Filter_ClientDistrict ul li"))
    myList = [] 
    el = browser.find_element_by_id('Filter_ClientDistrict')
    for option in el.find_elements_by_css_selector('ul li'):
        myList.append(option.get_attribute("innerText").strip())

我得到一张空名单。我是否应该将CSS选择器从“ul li”替换为其他内容?不,您不需要替换它。我猜只有当你点击下拉按钮时,列表才会被添加。当列表折叠时,你能显示下拉按钮的HTML代码吗?我想这可能是原因。因此,在运行代码之前,我添加了一个打开下拉列表的操作,但仍然得到一个空列表。我已将答案更新为单击并等待。您能试试吗?这是我现在遇到的错误:
error:'unicode'对象没有属性'trim'
我使用的是Python 2.7。我得到的是一个空列表。我是否应该将CSS选择器从“ul li”替换为其他内容?不,您不需要替换它。我猜只有当你点击下拉按钮时,列表才会被添加。当列表折叠时,你能显示下拉按钮的HTML代码吗?我想这可能是原因。因此,在运行代码之前,我添加了一个打开下拉列表的操作,但仍然得到一个空列表。我已将答案更新为单击并等待。您能试试吗?这是我现在遇到的错误:
error:'unicode'对象没有属性'trim'
我正在使用Python 2.7。