如何用Python将10minutemail.net的邮箱地址保存到变量中?
获取10minutemail邮箱地址的正确方法
Hey there! I see you're trying to grab the temporary email from 10minutemail.net using Selenium—let's get this sorted out.
问题出在哪?
- 当你写
email = driver.find_element_by_id('fe_text'),你只是把元素对象赋值给了email变量,并不是邮箱地址的实际文本内容。 .value()不是Selenium元素的合法方法,这就是那行代码报错的原因。
正确的解决方法
10minutemail的邮箱地址是存储在input标签的value属性里的,所以我们需要用.get_attribute('value')方法来提取这个属性值。另外补充一点:现在Selenium 4+已经弃用了find_element_by_id这类旧写法,更推荐用find_element(By.ID, '元素ID')的规范写法,不过旧写法在低版本里依然兼容。
这里给你两种可用的代码版本:
版本1:基于你原有写法的修改(兼容旧版Selenium)
from selenium import webdriver from time import sleep driver = webdriver.Chrome(r'''C:\WebDriver\chromedriver.exe''') email = "" driver.get("https://10minutemail.net") sleep(2) # 获取input标签的value属性值,这就是我们要的邮箱地址 email = driver.find_element_by_id('fe_text').get_attribute('value') print(email) # 可以打印出来验证结果 driver.quit() # 记得用完关闭浏览器
版本2:Selenium 4+ 推荐写法(需导入By模块)
from selenium import webdriver from selenium.webdriver.common.by import By from time import sleep driver = webdriver.Chrome(r'''C:\WebDriver\chromedriver.exe''') email = "" driver.get("https://10minutemail.net") sleep(2) email = driver.find_element(By.ID, 'fe_text').get_attribute('value') print(email) driver.quit()
额外优化提示
用sleep(2)虽然简单,但网页加载速度受网络影响,更稳妥的方式是使用显式等待,确保元素加载完成后再获取:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 替换原来的sleep(2)这一行 WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, 'fe_text')) )
这样可以避免因网络延迟导致的"元素未找到"错误。
内容的提问来源于stack exchange,提问作者Aynos
相关产品推荐
相关产品推荐

