2014-10-01 3 views
0

저는 자동화 테스팅 (Selenium, JavaLang N Eclipse 사용)의 초보자입니다.셀렌을 사용하여 필드에서 데이터 가져 오기

웹 페이지에서 값을 가져 와서 Excel에 저장하려고합니다.

입력 값은 Excel에서 가져오고 출력은 Excel에 저장됩니다.

현재 내가 직면하고있는 문제는 예를 들어 설명해 드리겠습니다.

먼저 Excel에서 계정 번호 123을 입력하고 검색 필드에 입력 한 다음 적절한 계정을 선택하고 이름과 이메일을 가져옵니다.

두 번째로 다음 계좌 번호 234가 Excel에서 가져 와서 검색 필드에 입력 된 다음 해당 계정의 적절한 이름과 이메일을 가져옵니다 (234).

마치 지금처럼 두 개의 계정으로 시도하고 있습니다.

그래서 내가 출력을 보거나 오히려 엑셀 파일을 열 때 마지막 열의 소유자 이름과 번호 만 두 열 모두에서 가져옵니다.

내가 필요한 결과는 첫 번째 계정 이름과 한 열의 이메일과 두 번째 계정 이름 및 다른 열의 이메일입니다.

나는 모든 사람들이 나를 도와 줄 것을 요청한다. !!

WebElement s1=driver.findElement(By.xpath("//table[@id='kInfo']/tbody/tr[10]/td")); 
     //WebElement s1=driver.findElement(By.xpath("//td[@class='tRight']/a")); 
      String s2=s1.getText(); 
      System.out.println("data:"+s2); 

      String D1= driver.findElement(By.xpath("//div[@class='vcard clearfix']")).getText(); 
      System.out.println(D1); 
     Thread.sleep(1000); 
     /*driver.findElement(By.xpath("//*[@id='homePage']")).click(); 
     driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
     Thread.sleep(1000);*/ 

     WritableWorkbook wb1 = Workbook.createWorkbook(new File("C:\\Bhasker-DNT\\Excel\\ouput.xls")); 
     WritableSheet ws1 = wb1.createSheet("customsheet", 1); 
     { 
     for(int count=0;count<4;count++) 
     { 
      for(int i=0;i<rc-1;i++) 
      { 
      Label label = new Label(i, 0, s2); 
       ws1.addCell(label); 

       Label label1 = new Label(i, 1, D1); 
       ws1.addCell(label1); 
      }   
     } 
     //Label label = new Label(0, 0, s2); 
     //ws1.addCell(label); 
     } 
     wb1.write(); 
     wb1.close(); 

답변

0

난 당신이 가정 사업부하거나 XPath를 필요로 선택 ​​또는 AP의 요소를 가져 오기 위해이에 찾고에 대한

감사합니다 .. 다음은

int rc= ws.getRows(); 

코드입니다 그것.

String name = "" 
    List<WebElement> your_list= driver.findElements(By.xpath("xpath_stuff or workbook.get(I)")); 


       for (int i=0; i<your_list.size(); i++) { 
       // System.out.println(i+ ". " + your_list.get(i).getText()); 
        // here you can write the elements to excel. 
    //if you need first name you need to just 
        if(i==(you know which is the first row that conatins the name) 
         { 
          name = your_list.get(i).getText(); 
         } 


    ... the same way the email and the other 
       ws1.addCell(your_list.get(i).getText()); 
       } 

     wb1.close(); 

보다 나는 우리에게 엑셀에서 일부 HTML에서 예와를 제공하시기 바랍니다없는 경우는, 도움이되기를 바랍니다.

+0

답변 해 주셔서 감사합니다. 이 시나리오에서는 인쇄 할 목록이 없습니다. 여러 계정 번호에 대해 이름과 전자 메일이 수집되는 시나리오가 여러 번 반복됩니다. 모든 계정의 이름과 전자 메일이 인쇄되어야하지만 마지막 계정 이름 n 전자 메일이 모두 대신 인쇄됩니다. 고맙습니다! – Bhasker

+0

어딘가에 xml 또는 html 코드를 복사 할 수 있습니까? 이 데이터를 복사 할 위치. 더미 데이터는 정확한 구조를보기에 충분합니다. – Csanesz

관련 문제