当我计划在15分钟后发送电子邮件时,如何单击收件箱中的特定电子邮件?

时间:2019-07-08 10:07:44

标签: java selenium selenium-webdriver

在我的应用程序中,我可以安排  每15分钟发送一次电子邮件(例如10.15、10.30、10。45等),该电子邮件将在第15分钟触发到客户列表。 1.如果我在10.00、10.05、10.11创建电子邮件作业,则电子邮件将在10.15交付。因此,我想在10.15之后点击主题为{First_Name}的特定电子邮件 2.在计划时间(10到10.15)之间,我可以在创建的作业中发送测试电子邮件,并且我想验证主题为“ Test First_Name”的测试电子邮件

在我的应用程序中,我能够在第15分钟每15分钟(例如10.15、10.30、10.45等)安排电子邮件,该电子邮件将触发客户列表。 1.如果我在10.00、10.05、10.11创建电子邮件作业,则电子邮件将在10.15交付。因此,我想在10.15之后点击主题为{First_Name}的特定电子邮件 2.在计划时间(10到10.15)之间,我可以在创建的作业中发送测试电子邮件,并且我想验证主题为“ Test First_Name”的测试电子邮件

//Check test email before the actual email got deliver
public static WebElement SendtestEmailLogin(WebDriver driver) throws Exception {
    try {

      Thread.sleep(3000);

      System.out.println(driver.getTitle());
      String parentwindow=driver.getWindowHandle();

      JavascriptExecutor js = (JavascriptExecutor) driver;
      js.executeScript("window.open('','');");

      Set<String> windows=driver.getWindowHandles();

      Iterator<String>i1=windows.iterator();

      while(i1.hasNext())
      {
          String childwindow=i1.next();

          if(!parentwindow.equals(childwindow))
          {
              driver.switchTo().window(childwindow);
              Thread.sleep(1000);
              driver.get("https://accounts.google.com/signin/v2/identifier?continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&service=mail&sacu=1&rip=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin");
              String Email=ReadExcell.getCellData(10, 1);
              String Pwd=ReadExcell.getCellData(10, 2);
              GmailLogin.Emailid(driver).sendKeys(Email);
              GmailLogin.next(driver).click();
              GmailLogin.Password(driver).sendKeys(Pwd);
              GmailLogin.Pwdnext(driver).click();
              System.out.println(driver.getTitle());
              System.out.println("After switching title is ="+driver.getTitle());
              //driver.close();
          }
      }
    //Thread.sleep(7000);
    //driver.switchTo().window(parentwindow);
    //System.out.println("Back to parentwindow "+driver.getTitle());
    }catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    return null;
}

//To click the email in inbox-But below not clicking the actual email its just click the email which has the subject "Test"
public static WebElement executeVerifyEmail(WebDriver driver) {

  try {
    GmailLogin.waitforVisible(driver, GmailLogin.Logo(driver));
    List<WebElement> emaillist=driver.findElements(By.xpath("//span[@class='bog']"));

    for(int i=0; i<emaillist.size(); i++){
      if(emaillist.get(i).getText().contains("TEST"))
      {
        emaillist.get(i).click();
        System.out.println("Email clicked");
        break;
      }
    }

  } catch(org.openqa.selenium.StaleElementReferenceException ex) {
    ex.getMessage();
  }

  return null;
}

0 个答案:

没有答案