如何使用硒获取标签元素的for属性

How to get the for attribute of label element using selenium

我是第一次尝试使用 Python,正在研究 Selenium。

目标是获取输入元素的 ID。 我正在尝试使用为 Input 元素生成随机 ID 的页面。因此无法通过 ID 寻址该元素。我怎么发现元素有标签,标签上写着 For=""

碰巧标签也没有其他属性。

页面如下所示

<div class="form-input">
    <label for="labeled-input-Asrf3PAYKRKRY1veHroMKxyxf">First Name</label>
    <input type="text" id="labeled-input-Asrf3PAYKRKRY1veHroMKxyxf" name="Asrf3PAYKRKRY1veHroMKxyxf" maxlength="79" class="" value="">
</div>
<div class="form-input">
    <label for="labeled-input-7Hgp_pSJn3iqZ3T_eRwBX5I5n">Last Name</label
    <input type="text" id="labeled-input-7Hgp_pSJn3iqZ3T_eRwBX5I5n" name="7Hgp_pSJn3iqZ3T_eRwBX5I5n" maxlength="79" class="" value="">
</div>

这是我到目前为止所管理的内容:

FName_ID = (driver.find_element_by_xpath("//label[contains(text(), 'First Name')]//ancestor::div//input").get_attribute("id"))
print("FName_ID",FName_ID)
LName_ID = (driver.find_element_by_xpath("//label[contains(text(), 'Last Name')]//ancestor::div//input").get_attribute("id"))
print("LName_ID",LName_ID)

打印输出如下所示:

FName_ID labeled-input-Asrf3PAYKRKRY1veHroMKxyxf
LName_ID labeled-input-Asrf3PAYKRKRY1veHroMKxyxf

我无法弄清楚这里缺少什么。感谢所有帮助。

谢谢

请试试这个:

FName_ID = (driver.find_element_by_xpath("//label[contains(text(), 'First Name')]/..//input").get_attribute("id"))
print("FName_ID",FName_ID)
LName_ID = (driver.find_element_by_xpath("//label[contains(text(), 'Last Name')]/..//input").get_attribute("id"))
print("LName_ID",LName_ID)