Взаимодействие с почтовым ящиком Gmail с помощью Selenium webdriver

Я работаю в проекте, где я должен купить продукт с какого-то веб-сайта. I’ll get a mail in Gmail I have to click on Received Email (Unread Mail) and interact with the clicked element.

До сих пор я купил продукт, и теперь я застрял с Gmail; я не могу открыть непрочитанную почту и взаимодействовать с элементом, когда я нажимаю «непрочитанная почта».
вот мой код

водитель.get(» https://www.gmail.com«);
водитель.руководить.)(окно.)(максимизировать();

  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 ответ

  1. Почему вы хотите взаимодействовать с электронной почтой, используя Selenium? Если вы не создаете автоматические тесты для Google, не должно быть причин делать это с Selenium. Причина этого в том, что каждое небольшое изменение, которое Google вносит в Gmail, имеет шанс сломать ваш скрипт и требует модификации.

    Вместо этого я бы рекомендовал использовать библиотеку ‘IMAP’, чтобы помочь вам в этом. Вы можете войти в систему и получить новые сообщения. С помощью этого вы можете проверить все, что вы хотите, чтобы проверить в вашей электронной почте.

    Например: я создавал интеграционные тесты для компании, в которой работал. Когда я использовал определенную функцию, будет отправлено письмо, содержащее url. Чтобы убедиться, что это работает правильно, я должен был получить это письмо и найти url в нем. Затем я использовал Selenium, чтобы получить url, который был в письме и проверил, если он перенаправил меня туда, где я ожидал. Я собрал электронную почту, используя imaplibдля Python. Я вошел в систему, собрал свой почтовый ящик и получил непрочитанные сообщения.