我在Python中使用Selenium抓取此页面(https://boards.greenhouse.io/reddit/jobs/4330383),并使用以下代码循环遍历所有必填字段:required = driver.find_elements_by_css_selector("[aria-required=true]")
.
问题是我无法查看每个元素的id
。命令required[0].id
(与driver.find_element_by_id("first_name").id
相同)返回了一个由字母数字字符和连字符组成的长字符串--尽管id
在HTML中是first_name
。有人能解释一下为什么id
从first_name
改为这个字符串吗?如何查看所需的实际id
?
另外,在HTML中引用前面提到的关联标签(例如,本例中的“First Name“)的最简单方法是什么?目标是循环遍历required
列表,并能够判断这些表单中的每一个表单实际上向用户请求的内容。
提前感谢!任何建议或替代方案都是受欢迎的。
3条答案
按热度按时间vhmi4jdf1#
你的代码已经很好了,你所需要做的就是使用.get_attribute()方法获取你的id:
dsf9zpds2#
driver.find_element_by_id("first_name")
返回Web元素对象。要获取web元素属性值(如
href
或id
),应对web元素对象应用get_attribute()
方法。因此,您需要将代码更改为
这将为您提供该元素的
id
属性值cedebl8k3#
我将回答我的第二个问题(“如何引用元素的关联标签?"),因为我刚刚使用
find_element_by_xpath()
方法结合前面的答案中提到的.get_attribute("id")
解决方案解决了这个问题: