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

如何使用Selenium Python通过strong文本获取元素ID

如何用Selenium Python通过<strong>文本内容获取对应元素ID并打印?

目标HTML代码

<div id="testModal" class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-shadow ui-hidden-container ui-dialog-exam ui-draggable" role="dialog" aria-labelledby="testModal_title" aria-hidden="false" aria-live="polite" style="width: auto; height: auto; left: 495px; top: 362px; z-index: 1002; display: block;">
    <div class="ui-dialog-titlebar ui-widget-header ui-helper-clearfix ui-corner-top ui-draggable-handle">
        <span id="testModal_title" class="ui-dialog-title"></span>
    </div>
    <div class="ui-dialog-content ui-widget-content" style="height: auto;">
        <form id="testForm" name="testForm" method="post" action="/pages/juht/test/test.jsf" enctype="application/x-www-form-urlencoded">
            <input type="hidden" name="testForm" value="testForm">
            <ul>
                <li>
                    <a id="testForm:j_idt607:8:j_idt609" href="#" class="ui-commandlink ui-widget" onclick="PrimeFaces.addSubmitParam('testForm',{'testForm:j_idt607:8:j_idt609':'testForm:j_idt607:8:j_idt609'}).submit('testForm');return false;PrimeFaces.onPost();">
                        <strong>10.10.2022</strong>
                        19:00
                        <strong>Place »</strong>
                    </a>
                </li>
                <li>
                    <a id="testtestForm:j_idt607:10:j_idt609" href="#" class="ui-commandlink ui-widget" onclick="PrimeFaces.addSubmitParam('testForm',{'testForm:j_idt607:10:j_idt609':'testForm:j_idt607:10:j_idt609'}).submit('testForm');return false;PrimeFaces.onPost();">
                        <strong>11.10.2022</strong>
                        11:00
                        <strong>Place2 »</strong>
                    </a>
                </li>
            </ul>
            <input type="hidden" name="javax.faces.ViewState" value="-4629203658604947866:263715935893442864" autocomplete="off">
        </form>
    </div>
</div>

解决方案

核心逻辑:先通过<strong>的文本内容定位到该元素,再找到它的直接父级<a>标签,最后提取<a>标签的id属性。

代码示例

from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化Chrome驱动(根据实际浏览器替换)
driver = webdriver.Chrome()
driver.get("目标页面的URL")

# 示例1:通过日期文本"10.10.2022"获取对应<a>的ID
target_text = "10.10.2022"
a_element = driver.find_element(By.XPATH, f"//strong[text()='{target_text}']/parent::a")
print(f"对应元素ID:{a_element.get_attribute('id')}")

# 示例2:通过地点文本"Place2 »"获取对应<a>的ID
target_text = "Place2 »"
a_element = driver.find_element(By.XPATH, f"//strong[text()='{target_text}']/parent::a")
print(f"对应元素ID:{a_element.get_attribute('id')}")

# 示例3:处理多个匹配元素(若存在相同文本的strong)
target_text = "11.10.2022"
elements = driver.find_elements(By.XPATH, f"//strong[text()='{target_text}']/parent::a")
for elem in elements:
    print(f"匹配元素ID:{elem.get_attribute('id')}")

# 关闭驱动
driver.quit()

注意事项

如果<strong>文本前后有多余空格导致匹配失败,可使用normalize-space()处理文本,自动去除首尾空格并合并中间连续空格:

a_element = driver.find_element(By.XPATH, f"//strong[normalize-space(text())='{target_text}']/parent::a")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:45:15