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

如何通过WebDriver从获取到的WebElement中提取邮箱地址?

提取邮箱地址的方法

你已经定位到包含邮箱的<a>元素,以下是两种直接提取邮箱地址的方案:

方法一:从元素的href属性提取

方式1:用Selenium的get_attribute方法

拿到WebElement后,先获取完整的mailto:链接,再截取邮箱部分:

email_element = driver.execute_script("return document.querySelector(`a[href^='mailto:']`)")
if email_element:
    full_mailto = email_element.get_attribute('href')
    email_address = full_mailto.replace('mailto:', '')
    print(email_address)

方式2:在JavaScript中直接完成提取

可以一步到位,在execute_script里直接处理并返回邮箱:

email_address = driver.execute_script("""
    const link = document.querySelector(`a[href^='mailto:']`);
    return link ? link.href.replace('mailto:', '') : null;
""")
print(email_address)

方法二:提取元素的文本内容(如果邮箱直接显示在元素文本中)

部分页面的mailto链接文本就是邮箱地址,这种情况直接获取元素文本即可:

email_element = driver.execute_script("return document.querySelector(`a[href^='mailto:']`)")
if email_element:
    email_address = email_element.text
    print(email_address)

额外提示

如果页面需要等待元素加载,可添加显式等待确保元素已渲染:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 最多等待10秒,直到元素出现
email_element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, "a[href^='mailto:']"))
)
# 提取邮箱
full_mailto = email_element.get_attribute('href')
email_address = full_mailto.replace('mailto:', '')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:00:58