2016-03-31 5 views
-4

Как выбрать последнюю непрочитанную почту из определенной почтовой программы с использованием Selenium. Идентификатор класса/идентификатора относится к конкретным почтовым сообщениям, поэтому он приводит к жесткому кодированию для использования этих идентификаторов.Автоматизация электронной почты с использованием Selenium Webdriver

+1

Пожалуйста, будьте конкретнее en задавая вопросы. Если вы ищете, например, самую последнюю непрочитанную почту gmail, то это хорошо, но если вы ищете конкретную почтовую программу, которая используется в вашей организации, тогда ее трудно объяснить кому-либо. Поэтому, пожалуйста, объясните, что именно вы хотите –

+0

Я ищу последнюю непрочитанную почту в gmail из конкретной почтовой программы. Предположим, что я ищу почту из XYZ и самую последнюю почту, отправленную XYZ в мою учетную запись gmail. –

+0

Да, теперь это конкретный вопрос и может быть сделано, подождите некоторое время, я опубликую exmaple относительно этой надежды, которая поможет вам –

ответ

0

Привет пожалуйста, найти решение для вашего вопроса это работает точно в соответствии с вашим недавним комментарием

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    System.setProperty("webdriver.chrome.driver","D:\\eclipseProject\\StackOverFlow\\chromedriver_win32 (1)\\chromedriver.exe"); 
    WebDriver driver = new ChromeDriver(); 
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
    driver.manage().window().maximize(); 

    driver.get("https://accounts.google.com/ServiceLogin?"); 

    // gmail login 
    driver.findElement(By.id("Email")).sendKeys("your gmail username"); 
    driver.findElement(By.id("next")).click(); 
    driver.findElement(By.id("Passwd")).sendKeys("your gmail password"); 
    driver.findElement(By.id("signIn")).click(); 

    // some optional actions for reaching gmail inbox 
    driver.findElement(By.xpath("//*[@title='Google apps']")).click(); 
    driver.findElement(By.id("gb23")).click(); 

    // now talking un-read email form inbox into a list 
    List<WebElement> unreademeil = driver.findElements(By.xpath("//*[@class='zF']")); 

    // Mailer name for which i want to check do i have an email in my inbox 
    String MyMailer = "Udacity"; 

    // real logic starts here 
    for(int i=0;i<unreademeil.size();i++){ 
     if(unreademeil.get(i).isDisplayed()==true){ 
      // now verify if you have got mail form a specific mailer (Note Un-read mails) 
      // for read mails xpath loactor will change but logic will remain same 
      if(unreademeil.get(i).getText().equals(MyMailer)){ 
       System.out.println("Yes we have got mail form " + MyMailer); 
       // also you can perform more actions here 
       // like if you want to open email form the mailer 
       break; 
      }else{ 
       System.out.println("No mail form " + MyMailer); 
      } 
     } 
    } 
} 

enter image description here

и результат, показанный на консоли в затмения

Yes we have got mail form Udacity 

Надежда это поможет вам, что вы ищете

+0

Это помогает много! .. спасибо .. нужно больше .. Как открыть непрочитанную почту? xpath/class/id будет изменяться всякий раз, когда появляется новое электронное письмо. –

+0

Нет в gmail для непрочитанных писем xpath будет одним, а для непрочитанной почты xpath будет одним, так как вы можете видеть, что для непрочитанных я использовал одиночный xpath, который представляет всю непрочитанную почту в папке «Входящие», если вам нужен один xpath для непрочитанных, то обновите xptah до этот By.xpath ("// * [@ class = 'yP']") также, если он вам поможет, пожалуйста, отметьте это как ваш ответ спасибо –

0

Помимо прочего: нет общего способа сделать это. Это полностью зависит от вашего Web-Mailer. Обычно непрочитанные письма имеют к ним специальные классы. Итак, что я делаю в таких ситуациях, это искать их, создавать XPath (которые могут быть легко протестированы в текстовом поле поиска инструментов chrome dev или с расширением Chrome «XPath Helper») и либо нажмите кнопку tem, либо удалите их по одному, или - если есть - установите флажок в той же строке. Выражения XPath имеют относительную значимость, но также достаточно гибкие.

Самая большая проблема заключается в том, что Web-Mailer часто имеет тенденцию к изменению, поэтому вам нужно будет отслеживать. Что может расстраивать.

Смежные вопросы