我想使用selenium python从下拉列表中选择一个项目。该项目使用react.js
。 dropdown
html出现在div中。
由于这是在div下,而不是选择,当我尝试选择特定值时,我收到了一条错误消息。
错误讯息:
selenium.common.exceptions.UnexpectedTagNameException:消息:选择 仅适用于元素,而不适用于div
我该如何解决这个问题?
答案 0 :(得分:1)
您无法使用Select
class来操作使用select
和option
元素未实现的下拉菜单。
你必须“手动”处理这种下拉菜单 - 一般来说 - 点击它以打开它,找到所需的下拉项目/选项并单击它。例如,通过简明的HTML片段判断,打开下拉菜单,您可以尝试:
# open up the dropdown
dropdown = driver.find_element_by_css_selector(".Select-control")
# or dropdown = driver.find_element_by_css_selector(".Select-control .Select-input")
dropdown.click()
# TODO: select option
有时,只需关注下拉列表并输入所需的项目/选项文本就会自动选择它 - 如果是这种情况,您可以尝试:
from selenium.webdriver.common.action_chains import ActionChains
actions = ActionChains(driver)
actions.move_to_element(dropdown).send_keys("Desired option text").perform()
并且,如果有任何动画或时间延迟(例如,从服务器检索选项),您可能需要添加Explicit Waits来处理可能的时间问题。
这些都是一般提示,我在假设下操作,我无法检查上述内容是否适用于您的用例。