2014-11-20 2 views
-2

새 소개 셀레늄 Webdriver 신규 Smoke testing .ie 테스트를 통해 모든 웹 사이트 링크가 잘 작동하는지 테스트합니다. 링크가 손상되었거나 작동하지 않는다는 것은 테스트 보고서 전송을 의미합니다. 이메일을 특정 url.Actually 모든 링크를 테스트하고 모든 웹 사이트를 엑셀 시트 문제에서 얻는 일부 코드를 작성했습니다 링크가 작동하지 않는 경우 bt 결과를 보여줍니다 뉴 그것으로 정확한지 알 수 없습니다 그 코드를 첨부하고 있습니다. 특히 모든 웹 사이트는 Wordpress로 구성되어 있습니다. 대신 링크 텍스트 (들) 및 클릭을 얻기의이 문제에 대한 명확한 결과를 얻지 못했습니다.

public class LinktestTest 
    { 
    public static WebDriver driver; 


    @Test 
    public void findurl() throws Throwable, IOException { 
    FileInputStream fi = new FileInputStream("D:\\sample.xls"); 
    Workbook wb = Workbook.getWorkbook(fi); 
    //driver = new FirefoxDriver(); 
    Sheet s = wb.getSheet(0); 
    System.out.println("Program Started"+s.getName()); 
    System.out.println(s.getRows()); 
    for (int row = 0; row <= s.getRows()-1; row++) 
    { 
     driver = new FirefoxDriver(); 

    String Urllist = s.getCell(0, row).getContents().toString(); 
    System.out.println("Urllist" + Urllist); 
    driver.get(Urllist); 
    List<WebElement> linkElements = driver.findElements(By.tagName("a")); 
    String[] linkTexts = new String[linkElements.size()]; 
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.MINUTES); 
    int j = 0; 
    for (WebElement e : linkElements) { 
    linkTexts[j] = e.getText(); 
    j++; 
    } 

    // test each link 
    for (String t : linkTexts) { 
    if (t != null && !t.isEmpty()) { 
    driver.findElement(By.linkText(t)).click(); 
    String title; 
    title = driver.getTitle(); 
    System.out.println("title is"+title); 
    if((title.contains("You are not authorized to view this page"))||(title.contains("404")) || 
    (title.contains("408"))|| (title.contains("400")) || (title.contains("401")) 
     || (title.contains("403"))||(title.contains("Page not found"))||(title.contains("500"))||(title.contains("error"))||(title.contains("503 Service Unavailable"))) 
    { 
    System.out.println(t + " the link is not working"); 
    } else { 
    System.out.println("\"" + t + "\"" + " is working."); 
    driver.navigate().back(); 

    } 
    } 

    }driver.quit(); 
    } 
    } 

    } 
+0

가 링크 중 하나, 실제로는 작동하지 않습니다 해결하기 위해 기존 코드를 쥐게했다? – Subh

답변

0

, 당신은 단지 각 ""태그 요소의 "HREF"속성을 검색 할 수 있습니다. 목적은 각 URL을 탐색하고 제목을 열어 링크를 확인하기위한 것이므로 더 나은 방법으로 추천합니다. 아래는 업데이트 된 코드입니다.

참고 : 난 그냥

@Test 
public void findurl() throws Throwable, IOException { 
    FileInputStream fi = new FileInputStream("D:\\sites.xls"); 
    Workbook wb = Workbook.getWorkbook(fi); 
    //driver = new FirefoxDriver(); 
    Sheet s = wb.getSheet(0); 
    System.out.println("Program Started"+s.getName()); 
    System.out.println(s.getRows()); 

    for (int row = 0; row < s.getRows(); row++) 
    { 
     driver = new FirefoxDriver(); 

     driver.manage().window().maximize(); 

     driver.manage().timeouts().implicitlyWait(1, TimeUnit.MINUTES); 

     String Urllist = s.getCell(0, row).getContents().toString(); 
     System.out.println("Url number "+(row+1)+": " + Urllist);  
     driver.get(Urllist); 

     List<WebElement> linkElements = driver.findElements(By.tagName("a")); 
     System.out.println("The number of links under URL number "+(row+1)+" is: "+linkElements.size()); 
     String[] linkhrefs = new String[linkElements.size()]; 

     int j = 0; 
     for (WebElement e : linkElements) { 
      linkhrefs[j] = e.getAttribute("href"); 
      j++; 
     } 

     // test each link 
     int k=0; 
     for (String t : linkhrefs) { 
      try{ 
       if (t != null && !t.isEmpty()) { 
        System.out.println("Navigating to link number "+(++k)+": '"+t+"'"); 
        driver.navigate().to(t); 
        String title; 
        title = driver.getTitle(); 
        System.out.println("title is: "+title); 
        if((title.contains("You are not authorized to view this page"))||(title.contains("404")) || 
          (title.contains("408"))|| (title.contains("400")) || (title.contains("401")) 
          || (title.contains("403"))||(title.contains("Page not found"))||(title.contains("500"))||(title.contains("error"))||(title.contains("503 Service Unavailable"))) 
        { 
         System.err.println(t + " the link is not working because title is: "+title); 
        } else { 
         System.out.println("\"" + t + "\"" + " is working."); 
         //driver.navigate().back(); 
        } 
       }else{ 
        System.err.println("Link's href is null."); 
       } 
      }catch(Throwable e){ 

       System.err.println("Error came while navigating to link: "+t); 
      } 

      System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); 

     } 

     System.out.println("-------------------------------------------------------------"); 

     System.out.println("Closing the driver as the links under url: "+Urllist+" have been checked out"); 

     driver.quit(); 
    } 
} 
+0

우수 답변 및 u가 2 개의 셀레늄 프로젝트를 배치하는 방법을 가르쳐 줄 수 있다면 자동으로 하나씩 실행됩니다. –

관련 문제