You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium中动态变量拼接定位元素失效问题求助

Selenium动态循环定位问题及解决办法

问题现象

静态定位代码可正常运行:

monday_div = driver.find_element(By.XPATH, '//*[@id="GXPMonday"]')

但使用动态变量循环定位的代码执行失败:

weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

for day in weekdays:
    main_day_div = driver.find_elements(By.XPATH, '//*[@id="GXP' + day + '"]')

报错信息:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="GXPMonday"]

解决方案

最终可行的代码如下:

weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
main_day_div_list = []
all_div_list = []

# 循环定位每一天的父容器并存入列表
for day in weekdays:
     main_day_divs = driver.find_element(By.XPATH, '//*[@id="GXP' + day + '"]')
     main_day_div_list.append(main_day_divs)

# 遍历父容器,获取每个容器下的GXPEntry元素
for element in main_day_div_list:
    entries = element.find_elements(By.CLASS_NAME,"GXPEntry")
    all_div_list.extend(entries)

内容的提问来源于stack exchange,提问作者Orest Tokovenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:01:20