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

使用Selenium结合Xpath无法提取20分钟邮箱文本问题求助

解决20-minute mail临时邮箱文本提取的问题

嘿,刚看到你学Python两个月就上手做临时邮箱生成器,真的挺厉害的!不过你遇到的Xpath提取文本的问题,我马上帮你搞定~

问题出在哪?

你代码里这一行是关键问题:

email = driver.find_element_by_xpath("//*[@id=\"userTempMail\"]/text()")

Selenium的find_element_by_xpath方法只能返回WebElement对象,没办法直接用/text()这种Xpath语法提取文本节点。要获取元素里的文本,得先定位到元素,再调用它的.text属性。

修正后的完整代码

我给你调整了代码,还加了几个小优化:

from selenium import webdriver
from time import sleep

# 路径前加r变成原始字符串,避免反斜杠被当成转义字符
PATH = r"C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("http://www.20minutemail.com/")
sleep(1)

createMail = driver.find_element_by_xpath("//*[@id='headerwrap']/header/div[2]/div/div/input[2]")
createMail.click()
sleep(3)

# 先定位到邮箱元素,再用.text获取文本内容
email_element = driver.find_element_by_xpath("//*[@id='userTempMail']")
email = email_element.text
print(email)

# 记得用完关闭浏览器哦
driver.quit()

额外的小建议(让代码更稳定)

固定用sleep()有时候会因为网络慢导致元素还没加载出来就报错,推荐用Selenium的显式等待来代替,它会等元素加载完成后再执行,更靠谱:

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

PATH = r"C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("http://www.20minutemail.com/")

# 等待创建按钮加载完成再点击
createMail = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, "//*[@id='headerwrap']/header/div[2]/div/div/input[2]"))
)
createMail.click()

# 等待邮箱元素出现再提取文本
email_element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "userTempMail"))
)
email = email_element.text
print(email)

driver.quit()

这样最多等待10秒,元素一加载好就执行,比硬等3秒灵活多啦~

内容的提问来源于stack exchange,提问作者Mr.remark And more

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 21:17:50