Откройте проверочный код, отправленный в почтовый ящик, затем скопируйте этот код и вставьте его в поле проверочного кода при тестировании селена. - PullRequest
0 голосов
/ 14 февраля 2019

Я новичок в веб-тестировании селеном. Я автоматизировал процесс входа в веб-приложение.Теперь, когда я делаю это для процесса регистрации, я застрял в точке, где код подтверждения отправляется на почтовый адрес, а затем мне нужно скопировать его в поле кода подтверждения и продолжить.

Поскольку я искал до сих поря узнал о почтовом сервере, но не смог скопировать этот код проверки электронной почты в мой автоматический веб-браузер.Я также искал учебники, но не смог найти ни одного полезного ресурса.Также я хочу генерировать случайные электронные письма, что эта часть также не приходит мне в голову.

Поскольку я новичок в селене, поэтому меня просят предоставить подробный ответ, чтобы я мог лучше понять его, Заранее спасибо, работаюна Intellij, Mavaen (Java)

1 Ответ

0 голосов
/ 15 февраля 2019

Вы можете использовать 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. зарегистрироваться в веб-приложении с новым составленным адресом электронной почты, электронное письмо с подтверждением отправлено
  2. с использованием collectDoubleOptInLink(email, 1); - ссылка для подтвержденияустановить doubleOptInLink
  3. , вызывая другой метод для перехода по ссылке подтверждения с помощью getDoubleOptInLink();

Конечно, вам нужно изменить строку, которая приходит к setDoubleOptInLink();В особых случаях не забывайте setDoubleOptInLink(null);.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...