UI自动化-下拉选择框多级联动情况进行选择

方法一:直接点击

python 复制代码
# 选择省-北京市
driver.find_element(By.XPATH,'/html/body/div[1]/form/div[4]/div[1]/a/span').click()
driver.find_element(By.XPATH,'/html/body/div[1]/form/div[4]/div[1]/div/ul/li[2]').click()
# 选择城市-东城区
driver.find_element(By.XPATH,'/html/body/div[1]/form/div[4]/div[2]/a/span').click()
driver.find_element(By.XPATH,'/html/body/div[1]/form/div[4]/div[2]/div/ul/li[2]').click()
# 选择区县-东四街道
driver.find_element(By.XPATH,'/html/body/div[1]/form/div[4]/div[3]/a/span').click()
driver.find_element(By.XPATH,'/html/body/div[1]/form/div[4]/div[3]/div/ul/li[3]').click()

方法二:使用select原生进行选择

python 复制代码
province_select = driver.find_element(By.NAME,'province') #省
select_province = Select(province_select)
select_province.select_by_visible_text('北京市')  # 按文本选择
# select_province.select_by_value("1")  # 按value属性选择

city_select = driver.find_element(By.NAME,'city') #市
select_city = Select(province_select)
select_city.select_by_visible_text('东城区')  # 按文本选择

area_select = driver.find_element(By.NAME,'county') #区
select_area = Select(area_select)
select_area.select_by_visible_text('东华门街道')  # 按文本选择

select选择时以防加载慢数据还没加载出来,可以加一个等待

python 复制代码
wait = WebDriverWait(driver, 15)
province_select = wait.until(EC.element_to_be_clickable((By.XPATH, '//select[@placeholder="省份"]')))
select_province = Select(province_select)
select_province.select_by_visible_text("北京市")

# 等待城市选项加载完成,选择城市(以"北京市"为例)
city_select = wait.until(EC.element_to_be_clickable((By.XPATH, '//select[@placeholder="城市"]')))
# 等待城市下拉框有非默认选项(排除"请选择")
wait.until(lambda d: len(Select(city_select).options) > 1)
select_city = Select(city_select)
select_city.select_by_visible_text("东城区")

# 3. 等待区县选项加载完成,选择区县
area_select = wait.until(EC.element_to_be_clickable((By.XPATH, '//select[@placeholder="区县"]')))
wait.until(lambda d: len(Select(area_select).options) > 1)
select_area = Select(area_select)
select_area.select_by_visible_text("东华门街道")
相关推荐
不可求~4 小时前
多模型路由怎么落地:把任务分流写进项目的最小实现
java·前端·数据库
jufeng13076 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 11 篇】
python·ai agent·mcp
En^_^Joy6 小时前
Django项目配置全攻略:settings配置文件
后端·python·django
for_ever_love__7 小时前
python基础语法学习: 异常的传递性
开发语言·python·学习
AC赳赳老秦8 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
谢慧琼8 小时前
2026零基础做企业网站,低成本搭建官方网站
服务器·前端·javascript
麻雀飞吧9 小时前
零基础选量化工具,先把问题说清楚
人工智能·python
weixin_431600449 小时前
前端数据埋点(1):一次点击如何变成一条埋点
前端·js·数据埋点
段一凡-华北理工大学9 小时前
AI推动工业智能化转型~系列文章20:工业 AI 平台架构:云-边-端协同的技术体系
人工智能·python·架构·工业平台·云-边协同