2016-04-21 12 views
0

Ich muss Mails aus Gmail-Posteingang mit Selen Webdriver mit Java in Eclipse IDE öffnen. Gibt es eine Möglichkeit, dies mit XPath zu tun?Öffnen Sie Mails aus Gmail-Posteingang mit Selen Webdriver mit Java

+0

Ja, es gibt einen Weg. – Guy

+0

würde ich sagen ** nein **. (Um der Qualität der Frage zu entsprechen.) Sie können nichts mit xpath öffnen. ;) –

+0

Wenn Sie eine Codierungsabfrage stellen, sollten Sie alles, was Sie selbst versucht haben, posten. Nur um Hilfe zu bitten, ohne von deiner Seite zu versuchen, wird dir nicht helfen, Antworten zu bekommen. – Akbar

Antwort

0
//open a mail from the gmail inbox. 
List<WebElement> a = driver.findElements(By.xpath("//*[@class='yW']/span")); 
      System.out.println(a.size()); 
      for (int i = 0; i < a.size(); i++) { 
       System.out.println(a.get(i).getText()); 
       if (a.get(i).getText().equals("Support")) //to click on a specific mail. 
        {           
        a.get(i).click(); 
       } 
      } 
1

Hallo plz versuchen, wie dies unter Code überprüft, ungelesene E-Mail nur

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

}

+0

Hallo Danke an alle für die Hilfe. Ich probierte es wie folgt aus: Liste x = driver.findElements (By.xpath ("// * [@ class = 'yW']/span")); System.out.println (x.größe()); für (int i = 0; i Binu

+0

M froh, dass es Ihnen geholfen hat Dank –

+0

nach Selen doc das ist nicht der Weg zu gehen [Worst Praktiken] (https://seleniumhq.github.io/docs/worst.html) – mancocapac

1

Der ideale Weg wäre nicht Selen verwenden gmail zu automatisieren, sondern die Google Mail verwendet API (https://developers.google.com/gmail/api/#how_do_i_find_out_more) um zu überprüfen, ob die Nachricht erfolgreich gesendet wurde. Wenn Sie nicht wissen möchten, wie Sie die Nachrichten auf der API-Ebene überprüfen können, empfehle ich Ihnen, die HTML-Version von Google Mail mit diesem Link als erste URL für Google Mail (https://mail.google.com/mail/?ui=html) mit Google Mail mit aktiviertem JavaScript zu verwenden ein zuverlässiges Testskript.

0

paket paket1; import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By; 

importieren org.openqa.selenium.chrome.ChromeDriver;

public class class1 { 
    public static void main(String[] args) throws InterruptedException{ 
     System.setProperty("webdriver.chrome.driver","C:\\Users\\name\\Desktop\\chromedriver.exe"); 
     ChromeDriver driver=new ChromeDriver(); 
     driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
     driver.get("https://accounts.google.com/ServiceLogin/identifier?service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin"); 
     driver.findElement(By.id("identifierId")).sendKeys("****@gmail.com"); 
     driver.findElement(By.id("identifierNext")).click(); 
     driver.findElement(By.xpath("//input[@aria-label='Enter your password' and @name='password']")).sendKeys("********"); 
     Thread.sleep(200); 
     driver.findElement(By.id("passwordNext")).click(); 


    }} 
Verwandte Themen