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
Antwort
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);
}
}
}
}
und das Ergebnis in der Konsole in Eclipse gezeigt
Yes we have got mail form Udacity
Hoffnung dies hilft Ihnen, was Sie suchen
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. –
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 –
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.
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 –
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. –
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 –