如何解决Selenium无法从https://www.temporary-mail.net/中的元素获取临时电子邮件的文本
我正在尝试在临时邮件网站中获取元素的文本;
https://www.temporary-mail.net/
我的目的是将临时邮件作为字符串获取
CSS:“ input#active-mail” XPATH =“ // * [@ id =” active-mail“]”
我尝试使用 .text 和 get_attribute()方法,但失败了!
我无法获取CSS元素的文字,我做错了吗?据我所知,它不在iFrame中,但我不确定,有人可以启发我吗?
代码:
driver.get("https://www.temporary-mail.net/")
kontrol = WebDriverWait(driver,10).until(
EC.presence_of_element_located((By.XPATH,'//*[@id="active-mail"]'))
)
time.sleep(1)
tmpMail_text = driver.find_element_by_xpath('//*[@id="active-mail"]').text
#or
tmpMail_attr = driver.find_element_by_xpath('//*[@id="active-mail"]').get_attribute("data-clipboard-text")
print(tmpMail_text )
print(tmpMail_attr )
time.sleep(1)
解决方法
要打印临时-mail 的值,例如68p7wixe@temporary-mail.net
您需要为visibility_of_element_located()
引入WebDriverWait,并且可以使用以下任一Locator Strategies:
-
使用
XPATH
:driver.get('https://www.temporary-mail.net/') print(WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"input#active-mail"))).get_attribute("data-clipboard-text"))
-
使用
CSS_SELECTOR
:driver.get('https://www.temporary-mail.net/') print(WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,"//input[@id='active-mail']"))).get_attribute("data-clipboard-text"))
-
控制台输出:
68p7wixe@temporary-mail.net
-
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
更新
作为替代visibility_of_element_located()
的替代方法,您还可以尝试element_to_be_clickable()
,如下所示:
-
使用
CSS_SELECTOR
:print(WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//input[@id='active-mail']"))).get_attribute("data-clipboard-text"))
-
使用
XPATH
:print(WebDriverWait(driver,"//input[@id='active-mail']"))).get_attribute("data-clipboard-text"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。