2016-10-07 3 views
0

Ich arbeite in einem Projekt, wo ich ein Produkt von einer Website kaufen muss. Ich erhalte eine E-Mail in Gmail. Ich muss auf E-Mail empfangen (Ungelesene E-Mail) klicken und mit dem angeklickten Element interagieren.Interaktion mit Gmail-Posteingang mit Selenium-Webdriver

Bisher habe ich das Produkt gekauft und jetzt bin ich mit der Google Mail fest; Ich kann die ungelesene E-Mail nicht öffnen und mit dem Element interagieren, wenn ich auf "Ungelesene E-Mails" klicke. Hier ist mein Code

driver.get ("https://www.gmail.com"); driver.manage(). Window(). Maximize();

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

}

+0

Teilen Sie Ihren Code, damit wir ihn betrachten und versuchen können, das Problem zu identifizieren. –

Antwort

0

Warum wollen Sie mit der E-Mail mit Selen zu interagieren möchten? Sofern Sie keine automatisierten Tests für Google erstellen, sollte dies kein Grund sein, dies mit Selenium zu tun. Der Grund dafür ist, dass jede kleine Änderung, die Google an Google Mail vornimmt, eine Chance hat, Ihr Skript zu unterbrechen, und Änderungen erforderlich sind.

Stattdessen würde ich empfehlen, eine "IMAP" -Bibliothek zu verwenden, um Ihnen dabei zu helfen. Sie können sich anmelden und die neuen Nachrichten erhalten. Mit diesem können Sie überprüfen, was Sie in Ihrer E-Mail einchecken möchten.

Zum Beispiel: Ich habe Integrationstests für ein Unternehmen erstellt, an dem ich gearbeitet habe. Wenn ich ein bestimmtes Feature verwendet, wird eine E-Mail gesendet, die eine URL enthält. Um zu überprüfen, ob das funktioniert, musste ich diese E-Mail bekommen und die URL darin finden. Als nächstes benutzte ich Selenium, um die URL zu erhalten, die in der E-Mail enthalten war, und verifizierte, ob sie mich dorthin weiterleitete, wo ich es erwartet hatte. Ich habe die E-Mail mit imaplib für Python gesammelt. Ich habe mich angemeldet, meine INBOX abgeholt und die ungelesenen Nachrichten abgeholt.

+0

nachdem ich ein Produkt gekauft habe, muss ich überprüfen, ob ich Mails erhalte und nachdem ich auf neue Mail geklickt habe, muss ich überprüfen ob der Produktdownload vorhanden ist oder nicht – sindhu