使用Python Selenium获取10minutemail邮箱地址返回空字符串如何解决
问题原因
<input>属于表单元素,输入框内显示的内容存储在元素的value属性中,.text属性仅可读取非表单标签包裹的可见文本,因此调用后返回空字符串。- 你代码中的导入语句存在语法错误,也会导致运行报错。
直接修复方案
修正导入逻辑和最后一行取值逻辑即可:
from selenium import webdriver import time Emailsite = webdriver.Chrome(Folder + r'\chromedriver.exe') Emailsite.get('https://10minutemail.com/') time.sleep(2) # 读取input的value属性而非text print(Emailsite.find_element_by_id('mail_address').get_attribute('value'))
优化方案(适配Selenium 4.0+,稳定性更高)
Selenium 4.0及以上版本已废弃find_element_by_*系列定位方法,同时强制等待time.sleep容易受网络波动影响出现报错,可改用显式等待优化代码:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC Emailsite = webdriver.Chrome(executable_path=Folder + r'\chromedriver.exe') Emailsite.get('https://10minutemail.com/') # 最长等待10秒,直到目标元素加载完成 mail_element = WebDriverWait(Emailsite, 10).until( EC.presence_of_element_located((By.ID, 'mail_address')) ) print(mail_element.get_attribute('value'))
内容的提问来源于stack exchange,提问作者2Lazy2BeOriginal
相关产品推荐
相关产品推荐

