使用Selenium webdriver与Gmail收件箱交互

时间:2016-10-07 06:51:03

标签: selenium

我在项目中工作,我必须从某个网站购买产品。我将在Gmail中收到邮件,我必须点击收到的电子邮件(未读邮件)并与点击的元素进行互动。

到目前为止,我已经购买了该产品,现在我已经坚持使用Gmail了。点击“未读邮件”后,我无法打开未读邮件并与该元素进行互动。 这是我的代码

driver.get(" https://www.gmail.com&#34);       。driver.manage()窗口()最大化();

  JavascriptExecutor exe = (JavascriptExecutor) driver;
    Integer numberOfFrames = Integer.parseInt(exe.executeScript("return window.length").toString());
    System.out.println("Number of iframes on the page are " + numberOfFrames);



  driver.findElement(By.id("Email")).sendKeys("your mail");
  driver.findElement(By.xpath(".//*[@id='next']")).click();
  driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

  WebElement ele4=driver.findElement(By.xpath("//*[@id='Passwd']"));
  new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated((By.xpath("//*[@id='Passwd']"))));
  ele4.sendKeys("yourpassword");
  driver.findElement(By.xpath("//*[@id='signIn']")).click();
  driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

  driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

  List<WebElement> unreademeil = driver.findElements(By.xpath("//*[@id=':3d']"));
  String MyMailer = "StrapUI";
  for(int i=0;i<unreademeil.size();i++)
  {
  if(unreademeil.get(i).isDisplayed()==true)
  {
  if(unreademeil.get(i).getText().equals(MyMailer))
  {
   System.out.println("Yes we have got mail form " + MyMailer);
   break;
  }
  else
  {
              System.out.println("No mail form " + MyMailer);
          }
      }
  }
  driver.findElement(By.xpath("//*[@id=':3d']")).click();
  driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  Thread.sleep(10000);

driver.switchTo().frame(0);

    Thread.sleep(5000);


   ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,500)", "");
        Thread.sleep(3000);
    }

}

1 个答案:

答案 0 :(得分:0)

为什么要使用Selenium与电子邮件进行互动?除非您为Google创建自动化测试,否则不应该有理由使用Selenium。这样做的原因是Google对Gmail所做的每一点改动都有可能破坏您的脚本并需要修改。

相反,我建议使用'IMAP'库来帮助您。您可以登录并获取新消息。使用此功能,您可以查看要在电子邮件中查看的内容。

例如:我正在为我曾经工作过的公司创建集成测试。当我使用某个功能时,会发送包含网址的电子邮件。要验证这是否正常工作,我必须收到此电子邮件并在其中找到该网址。接下来,我使用Selenium获取电子邮件中的网址,并验证它是否重定向到我预期的位置。我使用imaplibPython收集了电子邮件。我登录后,收集了我的INBOX并获取了未读消息。