2016-10-07 7 views
0

私はいくつかのウェブサイトから製品を購入する必要があるプロジェクトで働いています。私はGmailでメールを取得します。私は受信メール(未読メール)をクリックし、クリックされた要素と対話しなければなりません。Selenium webdriverを使用してGmailの受信トレイに対処する

これまでのところ私はこの製品を購入しましたが、今はGmailがついています。私は未読メールを開き、未読メールをクリックするとその要素と対話できません。 ここは私のコードです

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

コードを見て、問題を特定できるようにします。 –

答えて

0

は、なぜあなたはセレンを使用して電子メールと対話したいですか? Googleの自動テストを作成しない限り、Seleniumでこれを行う理由はありません。その理由は、GoogleがGmailに行う少しの変更でも、スクリプトを壊す可能性があり、変更が必要になるからです。

代わりに、私はこれを手伝うために 'IMAP'ライブラリを使用することをお勧めします。ログインして新しいメッセージを受け取ることができます。これを使用すると、あなたはあなたの電子メールをチェックしたいものをチェックすることができます。

たとえば、私が働いていた会社の統合テストを作成していました。特定の機能を使用すると、URLを含むメールが送信されます。これが正常に動作することを確認するために、私はこの電子メールを取得し、そこにURLを見つけなければなりませんでした。次に、Seleniumを使用して電子メールにあるURLを取得し、期待どおりの場所にリダイレクトされているかどうかを確認しました。私はPythonimaplibを使ってメールを集めました。私はログインし、私のINBOXを収集し、未読メッセージを取り出しました。

+0

商品を購入した後、私はメールを受け取っていることを確認する必要があります。新しいメールをクリックした後、商品のダウンロードが存在するかどうかを確認する必要があります – sindhu

関連する問題