Selenium 无法从 https://www.temporary-mail.net/ 中的元素获取临时电子邮件的文本

Selenium can not able to get text of the temporary email from the element within https://www.temporary-mail.net/

我正在尝试获取临时邮件网站中元素的文本;

https://www.temporary-mail.net/

我的目的是获取字符串形式的临时邮件

CSS:“输入#活动邮件” XPATH = "//*[@id="active-mail"]"

我尝试使用 .textget_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)

打印临时邮件的值,例如68p7wixe@temporary-mail.net 你需要诱导 for the visibility_of_element_located() and you can use either of the following :

  • 使用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, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='active-mail']"))).get_attribute("data-clipboard-text"))