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

如何用Python Selenium定位并点击学生贷款板块的「Know More」锚点?

问题:定位并点击学生贷款板块的“Know More”锚点

网页存在多个文本为“Know More”的锚点,分别对应不同贷款业务,需要精准点击学生贷款板块下的该锚点。目标板块HTML结构如下:

<div class="content">
    <h5 class="mb-10">For Students</h5>
    <h3>Enabling a hassle-free learning journey with curated solutions</h3>
    <h4>#CampusPower #StudentLoan</h4>
    <ul class="bullet-list bullet-list-orange mb-20">
        <li>One stop solution for all your education needs</li>
        <li>Customised product bundles for the country of your choice</li>
        <li>Explore pre & post admission guidance</li>
        <li>Learn how to manage your money.</li>
        </ul>
    <a id="ga-ese-whatsnew-1" href="/campus-power/student" class="ic-btn ic-btn-gradient">Know More</a>
    </div>

原代码仅能定位到第一个“Know More”元素,无法精准匹配目标锚点:

element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.XPATH, f"//*[contains(text(), '{keyword}')]"))
        )
element.click()

解决方案

方法1:基于板块特征文本定位父容器,再查找子锚点

利用学生贷款板块独有的文本(比如For Students或#StudentLoan)定位到父级div.content,再在容器内查找“Know More”锚点,避免匹配其他板块元素:

keyword = "Know More"
# 基于h5的"For Students"文本定位父容器
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, f"//div[h5[text()='For Students']]/a[contains(text(), '{keyword}')]"))
)
element.click()

# 或者基于h4的#StudentLoan文本定位
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, f"//div[h4[contains(text(), '#StudentLoan')]]/a[contains(text(), '{keyword}')]"))
)
element.click()

方法2:利用锚点自身的href属性精准匹配

目标锚点的href值为/campus-power/student,可直接通过该属性定位:

keyword = "Know More"
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, f"//a[contains(text(), '{keyword}') and @href='/campus-power/student']"))
)
element.click()

方法3:通过列表元素特征定位父容器

如果板块内的列表有独特类名(比如bullet-list-orange),也可以以此为标识定位父容器:

keyword = "Know More"
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, f"//div[contains(@class, 'content') and .//ul[contains(@class, 'bullet-list-orange')]]/a[contains(text(), '{keyword}')]"))
)
element.click()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:12:14