尝试通过python中的selenium从下拉菜单中选择多个元素。
来自URL的Website。但发生Timeoutexception
错误。
我试过GoogleChrome的Inspect菜单。//label[@for="inputGenre"]/parent::div//select[@placeholder="Choose a Category"]
给出了我需要的select标签。但不幸的是,使用selenium时,我找不到这个标签中的任何元素。你知道为什么会出现这个错误吗?
代码如下;
slect_element = Select(WebDriverWait(driver, 10).until(EC.element_located_to_be_selected((By.XPATH, '//label[@for="inputGenre"]/parent::div//select[@placeholder="Choose a Category"]'))))
slect_element.select_by_index(1)
slect_element.select_by_value('23')
奇怪的是,可以找到它并从下面的代码中获得它的文本值;
drp_menu=driver.find_elements(By.XPATH,'//label[@for="inputGenre"]/parent::div//div[@class="dropdown-main"]/ul/li')
print(len(drp_menu))
ls_categories=[]
for i in drp_menu:
ls_categories.append(i.get_attribute('innerText'))
print给出了15个元素,get_attribute(innerText)给出了每个option元素的文本。
1条答案
按热度按时间bvhaajcl1#
该Select元素是隐藏的,不能被Selenium使用,因为我们使用普通的Select元素来选择下拉菜单项。
在这里,我们需要打开下拉菜单,就像我们打开任何其他元素一样,方法是单击它们,选择所需的选项,然后单击“搜索”(Search)按钮。
因此,这些行将打开下拉菜单,并在下拉菜单中选择2个选项:
到目前为止的结果是:
最后单击“搜索”按钮,结果为:
整个代码是: