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

Selenium Python:获取必填表单真实ID及关联标签的问题

问题解答

1. 为什么返回随机ID而非真实ID?

Greenhouse招聘系统的表单元素会在页面加载完成后动态替换原始id属性,生成一串随机的字母数字字符串。Selenium操作的是最终渲染后的DOM,所以直接调用.id拿到的是更新后的随机ID,而非HTML源码里的first_name。

2. 获取真实ID(原始标识)的方法

不用依赖.id属性,直接获取元素的name属性即可,这个属性不会被动态替换:

# 针对单个必填元素
real_id = required[0].get_attribute('name')
# 遍历所有必填元素
for elem in required:
    real_id = elem.get_attribute('name')
    print(real_id)

实测这个方法能拿到first_name、last_name这类原始标识。

3. 获取必填字段对应前置标签的最简方式

观察页面DOM结构,每个输入框的前置标签(如"First Name")是它的前一个兄弟元素,可以用XPath直接定位:

for elem in required:
    # 获取前置标签文本
    label_text = elem.find_element_by_xpath('./preceding-sibling::label').text
    # 结合真实ID一起输出
    real_id = elem.get_attribute('name')
    print(f"{label_text}: {real_id}")

如果遇到结构略有不同的字段,也可以通过父容器定位标签:

parent_div = elem.find_element_by_xpath('./..')
label_text = parent_div.find_element_by_tag_name('label').text

内容的提问来源于stack exchange,提问作者John D'Uva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:55:33