2016-10-07 5 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을 사용하여 이메일을 수집했습니다. 로그인하여 내받은 편지함을 수집하고 읽지 않은 메시지를 가져 왔습니다.

+0

제품을 구입 한 후 메일을받는 wheather를 확인해야하며 새 메일을 클릭 한 후에 제품 다운로드가 있는지 확인해야합니다 – sindhu

관련 문제