如何将文本发送到的恢复邮件字段https://mail.protonmail.com/create/new?language=en 使用Selenium和Python

如何将文本发送到的恢复邮件字段https://mail.protonmail.com/create/new?language=en 使用Selenium和Python,python,selenium,xpath,iframe,webdriverwait,Python,Selenium,Xpath,Iframe,Webdriverwait,所以我想让我的第一个ProtonMail帐户生成器工作。我的问题是selenium找不到恢复邮件的字段或创建帐户按钮。我已经切换到iframe了。我很新,我认为这个问题可能是由包含底部的“新”html文档引起的(从恢复电子邮件开始)。希望有人能帮助我 恢复电子邮件字段位于中,因此您必须: 诱导WebDriverWait以使所需帧可用并切换到该帧 诱导WebDriverWait使所需元素可单击 您可以使用以下任一选项: 使用XPATH: WebDriverWait(driver, 10).

所以我想让我的第一个ProtonMail帐户生成器工作。我的问题是selenium找不到恢复邮件的字段或创建帐户按钮。我已经切换到iframe了。我很新,我认为这个问题可能是由包含底部的“新”html文档引起的(从恢复电子邮件开始)。希望有人能帮助我

恢复电子邮件字段位于
中,因此您必须:

  • 诱导WebDriverWait以使所需帧可用并切换到该帧

  • 诱导WebDriverWait使所需元素可单击

  • 您可以使用以下任一选项:

  • 使用
    XPATH

    WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//label[@for='notificationEmail']//following::div[@class='signupIframe-iframe']/iframe[@title='Registration form']")))
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='notificationEmail']"))).send_keys("manu102")
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • 浏览器快照:


参考文献 您可以在以下内容中找到一些相关讨论:


奥特罗 以下是一些有用的讨论:


实际上,您需要切换到两个iframe,而不是一个它们都有//iframe[@title='Registration form'],但它们的不同之处在于一个索引或类=top或bottom.driver.switchTo().frame(0);和驱动器。切换到()帧(1);我认为转换到框架应该足够了。你需要养成一种习惯,它可以帮助你解决问题。你将获得积分,其他人将被鼓励帮助你。是的,但真正帮助我的是阿伦德普·乔汉的评论,但我不能接受它或像回答一样处理它?谢谢你的帮助,但其他评论也起到了作用。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC