2016-03-31 2 views
-4

Wie wähle ich die letzte ungelesene E-Mail von einem bestimmten Mailer mit Selenium. Der Klassen-/ID-Bezeichner ist für bestimmte E-Mails spezifisch, so dass die Verwendung dieser Bezeichner hardcodiert wird.E-Mail-Automatisierung mit Selenium Webdriver

+1

Bitte genauer wh Wenn Sie suchen, sagen Sie Gmail neueste ungelesene Post als Beispiel, dann ist es in Ordnung, aber wenn Sie nach einem bestimmten Mailer suchen, die in Ihrer Organisation verwendet wird, dann ist es schwer für jeden zu erklären. So erklären Sie bitte, was genau Sie wollen –

+0

Ich suche nach der neuesten ungelesenen Mail in Google Mail von einem bestimmten Mailer. Angenommen, ich suche nach E-Mails von XYZ und der neuesten E-Mail, die von XYZ an mein Google Mail-Konto gesendet wurde. –

+0

Ja jetzt das ist spezifisch und kann getan werden warten einige Zeit werde ich ein Examply in Bezug auf diese Hoffnung, die Ihnen helfen wird –

Antwort

0

Hallo bitte die Lösung für Ihre Frage findet diese funktioniert genau nach Ihrem letzten Kommentar

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

und das Ergebnis in der Konsole in Eclipse gezeigt

Yes we have got mail form Udacity 

Hoffnung dies hilft Ihnen, was Sie suchen

+0

Das hilft viel! .. danke .. brauchen mehr .. Wie öffne ich die ungelesene Post ?? Der xpath/class/id wird geändert, wenn eine neue E-Mail vorhanden ist. –

+0

Nein in Google Mail für ungelesene Mails xpath ist eins und für ungelesene Mails xpath wird eins sein wie du nachlesen kannst Ich habe ein einzelnes xpath verwendet, das alle ungelesene Mail im Posteingang darstellt wenn du single xpath für ungelesen hast dann bitte update xptah zu this By.xpath ("// * [@ class = 'yP']") auch wenn es dir wirklich geholfen hat, dann markiere das bitte als deine Antwort danke –

0

Neben den Down-Stimmen: Es gibt keine übliche Möglichkeit, das zu tun. Dies hängt vollständig von Ihrem Web-Mailer ab. Normalerweise haben ungelesene Mails einige spezielle Klassen. Also, was ich in Situationen wie diesem tue, ist, nach ihnen zu suchen, einen XPath zu bauen (der entweder einfach in der Chrome-Dev-Tools-Suchtext-Feld oder mit der Chrome-Erweiterung "XPath Helper" getestet werden kann) und entweder klicken und löschen sie einzeln oder - falls vorhanden - in derselben Zeile ein Kontrollkästchen anwählen. Die XPath-Ausdrücke sind relativ groß, aber auch flexibel genug.

Das größte Problem ist, dass Web-Mailer oft dazu neigen, sich zu ändern, also müssen Sie den Überblick behalten. Was kann entnervend sein.