这个需要用selenium做一个动作链,你人移动到哪个元素上?它会展开这个下拉框,你对应的这个动作链的动作就是移动到这个元素,移动到这个元素,这个元素下自然隐藏的下拉框自然就会显示出来,此时你在定位下拉框中的元素进行点击,就完全没有问题,下面我给你提供一个这样的案例,就是鼠标移动上去显示出来,再点击的!
from selenium.webdriver.common.action_chains import ActionChains
action = ActionChains(self.driver) # 实例化一个动作链对象
# 这里写下拉框顶级元素的xpath 例如:
element = self.driver.find_element_by_link_text('车票')
# 鼠标移动到 '车票' 元素上的中心点
action.move_to_element(element).perform()
# 然后下拉框的内容就会显示出来,就可以点击了
#点击'单程'
self.driver.find_element_by_xpath('//*[@id="J-chepiao"]/div/div[1]/ul/li[1]/a').click()
当然,如果你的展示方式是先点击一个按钮,才会展示下拉框中的内容,那么就不需要动作链,你只需要先点击顶层元素,然后判断一下当下层元素显示出来后,点击下层元素就行!过来过去都涉及到了一些selenium的深层知识,比如隐式等待显式等待,或者说是检测某个元素是否显示出来,以及动作链的用法等等!
有帮助的话采纳一下哦
人是怎么点击的,代码就模拟怎么点击,比如先点击下拉箭头,然后等待元素全部加载出来以后再去点击想要的元素
点击后才会出现选项,先模拟点击大的,再点击具体选项