💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## 4.12 下拉框处理 下拉框是 Web 页面常见功能之一,WebDriver 提供了 Select 类来处理下拉框。 select在HTML中表示元素名,可创建单选或多选菜单。 ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <select name="cc"> <option value="boke">请关注cc博客</option> <option value="study">今天学习了么?</option> <option value="daily">今天看云写笔记了么?</option> <option value="like">点赞了么?</option> <option value="attention">关注了么?</option> </select> </body> </html> ``` <br /> ### **select操作方法** selenium中想要操作下拉框需要导入新的模块 fromselenium.webdriver.support.selectimportSelect  ### **Select有以下操作方法:** | 方法 | 说明 | | --- | --- | | select_by_index() | 通过索引定位 | | select_by_value() | 通过value值定位 | | select_by_visible_text() | 通过文本值定位 | | deselect_all() | 取消所有选项 | | deselect_by_index() | 取消对应index选项 | | deselect_by_value() | 取消对应value选项 | | deselect_by_visible_text() | 取消对应文本选项 | | first_selected_option() | 返回第一个选项 | | all_selected_options() | 返回所有的选项 | | options() | 返回所以的选择项 | | all_selected_options() | 返回所以已选中的选择项 | | first_selected_option() | 返回选中的第一个选择项 | <br /> 1、想要操作select,首先定位到select上,然后进行实例化 2、通过Select进行通过下标,value,text进行定位下拉框 3、加入判断预期值是否切换到下拉框中 ``` from selenium import webdriver from time import sleep from selenium.webdriver.support.select import Select from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("G:\我的坚果云\python_project\py3_selenium3_practice\static\select.html") # 通过显示等待的方法判断元素是否出现 WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.NAME, "cc"))) select = driver.find_element_by_name("cc") # 根据下标进行选择,从0开始 Select(select).select_by_index(1) sleep(2) # 根据value的值选择 Select(select).select_by_value('daily') sleep(2) # 根据text选择 Select(select).select_by_visible_text("关注了么?") sleep(2) # 判断选择是否预期 WebDriverWait(driver, 20).until(EC.element_located_to_be_selected(By.XPATH, '//*[contains(text(),"关注了")]')) ```