打开在邮箱中发送的验证码,然后将其复制并粘贴到硒测试中的验证码字段中

时间:2019-02-14 17:06:40

标签: selenium selenium-webdriver automated-tests

我是硒Web测试的新手,我已经针对Web基本应用程序自动执行了登录过程。现在要进行注册流程,我被困在将验证码发送到邮件地址的位置,然后我必须将其复制到我的验证码字段中,然后继续进行操作

到目前为止,我一直在搜索关于mailosaur服务器的信息,但无法将该电子邮件验证代码复制到我的自动Web浏览器中。我也搜索了教程,但找不到任何有用的资源。我也想生成随机的电子邮件,这部分内容也没有引起我的注意。

由于我是硒的新手,所以请提供详细的答案,以便我能更好地理解它。在此先感谢您,致力于Intellij和Mavaen(Java)的开发

1 个答案:

答案 0 :(得分:0)

您可以使用mailinator.com。无需注册或创建邮箱。在您的应用中,只需输入名称为@ mailinator.com的电子邮件(asad1 @ mailinator.com,asadXY @ mailinator.com,等等)即可。

要收集确认链接(选择加入),我正在使用此

public class Mailinator {
    public WebDriver driver;
    public Mailinator(WebDriver driver) {this.driver = driver;}
    public String urlMailinator = "https://www.mailinator.com/"; 
    public WebDriverWait waitSec(WebDriver driver, int sec) {return new WebDriverWait(driver, sec);}
    public static String doubleOptInLink = null;
    public String getDoubleOptInLink() {return doubleOptInLink;}
    public void setDoubleOptInLink (String doubleOptInLink) {Mailinator.doubleOptInLink = doubleOptInLink;} 

    public void collectDoubleOptInLink(String userEmail, int expectedNumberOfDeliveredEmails) throws InterruptedException {
        driver.get(urlMailinator);                  
        WebElement fldInbox = waitSec(driver, 5).until(ExpectedConditions.elementToBeClickable(By.id("inboxfield")));
        fldInbox.sendKeys(userEmail);
        WebElement btnGo = driver.findElement(By.xpath("/html/body/section[1]/div/div[3]/div[2]/div[2]/div[1]/span/button"));
        btnGo.click();
        waitSec(driver, 600).until(ExpectedConditions.numberOfElementsToBe((By.xpath("//*[@id=\"inboxpane\"]/div/div/div/table/tbody/tr")), expectedNumberOfDeliveredEmails));
        WebElement lastMailLink = driver.findElement(By.xpath("//*[@id=\"inboxpane\"]/div/div/div/table/tbody/tr"));
        lastMailLink.click();
        Thread.sleep(3000);
        driver.switchTo().frame(driver.findElement(By.id("msg_body")));
        setDoubleOptInLink(driver.findElement(By.xpath("//*[@id=\"intro\"]/tbody/tr/td/a")).getAttribute("href"));
    }
}

在我的情况下:

  1. 使用新组成的电子邮件注册到Webapp,确认电子邮件已发送
  2. 使用collectDoubleOptInLink(email, 1);是将确认链接设置为doubleOptInLink
  3. 通过getDoubleOptInLink();调用另一种方法转到确认链接

当然,您需要更改setDoubleOptInLink()附带的字符串; 在特定情况下,请不要忘记setDoubleOptInLink(null);