【问题标题】:Interacting with Gmail inbox using Selenium webdriver使用 Selenium webdriver 与 Gmail 收件箱交互
【发布时间】:2016-10-07 06:51:03
【问题描述】:

我正在从事一个项目,我必须从某个网站购买产品。我将在 Gmail 中收到一封邮件,我必须点击 Received Email (Unread Mail) 并与点击的元素进行交互。

到目前为止,我已经购买了该产品,但现在我被 Gmail 卡住了;当我单击“未读邮件”时,我无法打开未读邮件并与元素交互。 这是我的代码

driver.get("https://www.gmail.com"); driver.manage().window().maximize();

  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);
    }

}

【问题讨论】:

  • 分享您的代码,以便我们查看并尝试找出问题。

标签: selenium


【解决方案1】:

为什么要使用 Selenium 与电子邮件进行交互?除非您正在为 Google 创建自动化测试,否则没有理由使用 Selenium 执行此操作。原因是 Google 对 Gmail 所做的每一个小改动都有可能破坏您的脚本并需要修改。

我建议使用“IMAP”库来帮助您解决此问题。您可以登录并获取新消息。使用它,您可以检查您想在电子邮件中检查的任何内容。

例如:我正在为我以前工作的一家公司创建集成测试。当我使用某个功能时,会发送一封包含 url 的电子邮件。为了验证这是否正确,我必须收到这封电子邮件并在其中找到网址。接下来,我使用 Selenium 获取电子邮件中的 url,并验证它是否将我重定向到我期望的位置。我使用imaplibPython 收集了电子邮件。我登录,收集我的收件箱并获取未读消息。

【讨论】:

  • 购买产品后,我需要检查是否收到邮件,点击新邮件后,我必须验证是否存在产品下载
猜你喜欢
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-11
  • 2019-03-08
相关资源
最近更新 更多