2016-07-17 1 views
0

사이트 페이지를 여는이 프로젝트에서 필요한 필드를 채우는 중 제출 버튼을 누른 다음 테이블에 값이 표시된 다른 창을 엽니 다. 잘 작동하지만 테이블에서 Java 프로그램으로 파일에 저장하는 데이터를 가져 오는 방법을 모르겠습니다. 페이지 I에서자바로 페이지의 테이블에서 데이터 가져 오기

import java.io.FileOutputStream; 
import java.util.Iterator; 
import java.util.List; 
import java.util.concurrent.TimeUnit; 

import org.apache.commons.exec.util.StringUtils; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.support.ui.Select; 

public class Know_Your_Case_Status { 

    public void FillData(WebDriver driver) throws InterruptedException { 

     for (int i = 1; i < 12; i++) { 

      driver.get("http://cms.nic.in/ncdrcusersWeb/login.do?method=caseStatus"); 

      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

     //Select Radio Button for State Commission 
     driver.findElement(By.cssSelector("[id='UserType'][value='C']")) 
       .click(); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

     // Now Select State Assam 
     WebElement SelectState = driver.findElement(By.name("state_id")); 
     Select Sl = new Select(SelectState); 
     Sl.selectByVisibleText("Assam"); 

     /**** Select From Date ******/ 
     driver.findElement(By.cssSelector("img.ui-datepicker-trigger")) 
       .click(); 

     // Select may Month 
     Select SelMonth = new Select(driver.findElement(By 
       .className("ui-datepicker-month"))); 
     SelMonth.selectByValue("4"); 

     // Select Year 2015 
     Select SelYear = new Select(driver.findElement(By.id("scrollyear"))); 
     SelYear.selectByVisibleText("2015"); 

     // Select date 1 
     driver.findElement(By.linkText("1")).click(); 

     /**** Select To Date ******/ 
     // driver.findElement(By.cssSelector("img.ui-datepicker-trigger")).click(); 
     driver.findElement(By.xpath("(//img[@alt='...'])[2]")).click(); 

     // Select Jan Month 
     Select SelToMonth = new Select(driver.findElement(By 
       .className("ui-datepicker-month"))); 
     SelToMonth.selectByVisibleText("January"); 

     // Select Year 2016 
     Select SelToYear = new Select(driver.findElement(By 
       .id("scrollyear"))); 
     SelToYear.selectByVisibleText("2016"); 

     // Select date 1 
     driver.findElement(By.linkText("8")).click(); 

     Select SelCaseType = new Select(driver.findElement(By 
       .name("condition"))); 
     SelCaseType.selectByVisibleText("CaseType"); 

     Select Selval = new Select(driver.findElement(By.name("ctId"))); 
     Selval.selectByIndex(i+1); 

     //Selval.selectByValue("8"); 

     driver.findElement(By.name("advs")).click(); 

    } 

    } 

} 

그리고 코드 소스 :

나는

이 내 자바 프로그램에 대한 코드의이, 난 그냥 테이블에 정보를 얻을 필요가 셀레늄 WebDriver 함께 일하고 있어요 . 그것의 '정보 얻기 위해 노력하고있어 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<title>Query Report</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<link href="./stylesheet/confoStyle.css" rel="stylesheet" type="text/css" /> 
<script language="javascript" type="text/javascript" src="javascript/CommonCDRC.js"></script> 

<script language="javaScript"> 
function doPrint() 
    { 
      tbHead.style.display = "none"; 
      tbTail1.style.display = "none"; 
      tbTail2.style.display = "none"; 
      tbMenu.style.display = "none"; 
      window.print(); 

      tbHead.style.display = ""; 
      tbTail1.style.display = ""; 
      tbTail2.style.display = ""; 
      tbMenu.style.display = "";   
    } 

function submitForm() 
    { 
     var flgSubmit = 1; 

     var dtOfHearing = document.loginForm.dtOfHearing.value; 

     if(flgSubmit == 1) 
     { 

      document.loginForm.method.value = "loadSelectloginForCLhtml"; 
      document.loginForm.submit(); 
     } 
     else 
      return false; 

    } 

function loadProceeding(caseid, fano) 
    { 
     document.loginForm.fano.value=fano; 
     document.loginForm.cid.value=caseid; 

     document.loginForm.action="ViewProceedingCS.jsp"; 
     document.loginForm.submit(); 
    } 
</script> 
</head> 
<body bgcolor="#9cd3ed"> 
    <form name="loginForm" method="post" action="/ncdrcusersWeb/login.do" onsubmit="return submitForm()"> 
    <input type="hidden" name="method" value="ViewProceedingCS"> 
    <input type="hidden" name="fano" value=""> 
    <input type="hidden" name="case_id_in" value=""> 
    <input type="hidden" name="dtOfHearing" value=""> 
    <input type="hidden" name="courtId" value=""> 
    <input type="hidden" name="cid" value=""> 
    <input type="hidden" name="stateCode" value="5"> 
    <input type="hidden" name="distCode" value="0"> 



    <table class="baseContaner topGroup" width="100%" align="center"> 








     <tr> 
     <td width="3%" class="rptsubnumhd">SN</td> 
     <td width="10%" class="rptsubnumhd">Case No</td> 
     <td width="17%" class="rptsubtxthd">Complainant</td> 
     <td width="17%" class="rptsubtxthd">Respondent</td> 
     <td width="18%" class="rptsubtxthd">Complainant-Advocate</td> 
     <td width="17%" class="rptsubtxthd">Respondent-Advocate</td> 
     <td width="8%" class="rptsubnumhd">Date of Filing</td> 
     <td width="10%" class="rptsubnumhd"> 
     Date of Next Hearing 

     </td> 
     </tr> 




     <tr> 
     <td class="rptnumhval">1</td> 
     <td class="rptnumhval"><a class="help" href="javascript:loadProceeding('5/0/A/19/2015','A/19/2015')"> 
     A/19/2015 </a></td> 
     <td class="rpttxthval">Managing Director, The Assam Power Distribution Company Ltd.</td> 
     <td class="rpttxthval">Smti Khaleda Begum</td> 
     <td class="rpttxthval">Mr. P. Bhowmick</td> 
     <td class="rpttxthval"></td> 
     <td class="rptnumhval">15/05/2015</td> 
     <td class="rptnumhval">&nbsp; 

       19/05/2015 

     </td> 
     </tr> 


     <tr> 
     <td class="rptnumhval">2</td> 
     <td class="rptnumhval"><a class="help" href="javascript:loadProceeding('5/0/A/20/2015','A/20/2015')"> 
     A/20/2015 </a></td> 
     <td class="rpttxthval">The Chief Regional Manager, United India Insurance Company Ltd.</td> 
     <td class="rpttxthval">Mr. Dulu Dey</td> 
     <td class="rpttxthval">Mr. R. Goswami</td> 
     <td class="rpttxthval"></td> 
     <td class="rptnumhval">20/05/2015</td> 
     <td class="rptnumhval">&nbsp; 

       26/05/2015 

     </td> 
     </tr> 


     <tr> 
     <td class="rptnumhval">3</td> 
     <td class="rptnumhval"><a class="help" href="javascript:loadProceeding('5/0/A/21/2015','A/21/2015')"> 
     A/21/2015 </a></td> 
     <td class="rpttxthval">Dr. Vijay Nahata</td> 
     <td class="rpttxthval">Smti. Moushumi Nath</td> 
     <td class="rpttxthval">Mr. N. Sharma</td> 
     <td class="rpttxthval">Ms. D. Tamuli</td> 
     <td class="rptnumhval">05/06/2015</td> 
     <td class="rptnumhval">&nbsp; 

       11/09/2015 

     </td> 
     </tr> 


     <tr> 
     <td class="rptnumhval">4</td> 
     <td class="rptnumhval"><a class="help" href="javascript:loadProceeding('5/0/A/22/2015','A/22/2015')"> 
     A/22/2015 </a></td> 
     <td class="rpttxthval">Sri Biren Kalita</td> 
     <td class="rpttxthval">The Branch Manager, Ulubari Branch (CDO-II), Oriental Insurance Co. Ltd.</td> 
     <td class="rpttxthval">Mr. A. K. Gupta</td> 
     <td class="rpttxthval">Mr. S. Bhuyan</td> 
     <td class="rptnumhval">15/06/2015</td> 
     <td class="rptnumhval">&nbsp; 

       21/09/2015 

     </td> 
     </tr> 


     <tr> 
     <td class="rptnumhval">5</td> 
     <td class="rptnumhval"><a class="help" href="javascript:loadProceeding('5/0/A/23/2015','A/23/2015')"> 
     A/23/2015 </a></td> 
     <td class="rpttxthval">Smti. Sabita Roy</td> 
     <td class="rpttxthval">Managing Director, Birla Sun Life Insurance Co. Ltd.</td> 
     <td class="rpttxthval">Mr. N. N. Karmakar</td> 
     <td class="rpttxthval"></td> 
     <td class="rptnumhval">15/06/2015</td> 
     <td class="rptnumhval">&nbsp; 

       07/09/2015 

     </td> 
     </tr> 


     <tr> 
     <td class="rptnumhval">6</td> 
     <td class="rptnumhval"><a class="help" href="javascript:loadProceeding('5/0/A/24/2015','A/24/2015')"> 
     A/24/2015 </a></td> 
     <td class="rpttxthval">Branch Manager, Indian Overseas Bank</td> 
     <td class="rpttxthval">Mr. Padmeswar Baruati</td> 
     <td class="rpttxthval">Mr. V.K.Dewan</td> 
     <td class="rpttxthval"></td> 
     <td class="rptnumhval">24/06/2015</td> 
     <td class="rptnumhval">&nbsp; 

       17/09/2015 

     </td> 
     </tr> 



     <tr> 
     <td class="topHdMsg" colspan="8"><input type=button value="Back" onClick="history.go(-1)"></td> 
     </tr> 
    </table> 
    </form>  
</body> 
</html> 

내가 어쩌면 driver.findElement이 (By.tagName는 ("테이블")) gettext에()가 작동 할 수 있다는 생각을하지만 난 모든 데이터를 받고 있어요 한 줄, 그것이 무엇 이냐? 머리와 선을 separete하는 방법?

답변

1

당신은 다음과 같이 시도해야합니다 : -

List<WebElement> rows = driver.findElement(By.tagName("table")).findElements(By.tagName("tr")); 

for(WebElement row : rows) 
{ 
    List<WebElement> columns = row.findElements(By.tagName("td")); 
    for(WebElement column : columns) 
     { 
     String columnText = column.getText();  
     } 
    } 

이 도움이 ... :)

희망
관련 문제