2016-03-08 45 views
3

我想在表格中使用硒在一組文本框中輸入值,如下所示。 enter image description here如何使用硒在表格中輸入文本框組的值

我試過這種方式,但它沒有工作,並提出InvalidElementStateException

List<WebElement> marks = driver.findElements(By.xpath(".//table/tbody/tr/td/input")); 
    for (WebElement mark : marks) { 
    mark.sendKeys("10"); 
    } 

編輯: 在我的HTML中,TD包含一個額外的隱藏輸入也。

<tbody> 
<tr class="text-center student-mark" id="1"> 
    <td class="text-left">Name</td> 

    <td class="activityTableBody hidden" > 
     <input type="text" class="table-input 55630af2a0c4655a1ce06fcd_classTest" 
       id="55630af2a0c4655a1ce06fcd_classTest_556da05c699e70287ca203b0_classTest" value="0"> 
    </td> 

    <td class="activityTableBody" > 
     <input type="text" class="table-input 55630af2a0c4655a1ce06fcd_activity1" 
       id="55630af2a0c4655a1ce06fcd_activity1_556da05c699e70287ca203b0_Task-1" value="0"> 
    </td> 

    <td class="activityTableBody" > 
     <input type="text" class="table-input 55630af2a0c4655a1ce06fcd_activity2" 
       id="55630af2a0c4655a1ce06fcd_activity2_556da05c699e70287ca203b0_Task-1" value="0"> 
    </td> 

    <td class="activityTableBody"> 
     <input type="text" class="table-input 55630af2a0c4655a1ce06fcd_activity3" 
       id="55630af2a0c4655a1ce06fcd_activity3_556da05c699e70287ca203b0_Task-1" value="0"> 
    </td> 

    <td class="activityTableBody" > 
     <input type="text" class="table-input 55630af2a0c4655a1ce06fcd_activity4" 
       id="55630af2a0c4655a1ce06fcd_activity4_556da05c699e70287ca203b0_Task-1" value="0"> 
    </td> 

    <td class="activityTableBody" > 
     <input type="text" class="table-input 55630af2a0c4655a1ce06fcd_activity5" 
       id="55630af2a0c4655a1ce06fcd_activity5_556da05c699e70287ca203b0_Task-1" value="0"> 
    </td> 

    <td class="tableBodySA hidden" > 
     <input type="text" class="table-input 55630af2a0c4655a1ce06fcd_markSA" value="0"> 
    </td> 
    <td class="tableBodySA hidden" *emphasized text*> 
     <input type="text" class="table-input saMark 55630af2a0c4655a1ce06fcd_markSA100" width="20%" value="0"> 
    </td> 

</tr> 
. 
. 
</tbody> 
+0

請分享您的HTML代碼..請描述更多coloum您想在哪一天進入..在所有coloumns? –

+0

@ShubhamJain其實我想輸入表中所有文本字段的值,而不是特定的列。 – azhar

+0

你的代碼似乎很好..你的定位器必須有問題..這就是爲什麼我要求HTML代碼... –

回答

1

你應該在td不上課 '隱藏'

選擇 input
List<WebElement> marks = driver.findElements(By.xpath(
       ".//table/tbody/tr/td[contains(@class ,'activityTableBody') and not(contains (@class ,'hidden'))]/input")); 
     for (WebElement mark : marks) { 
      Integer studentMark = i++ % 6; 
      System.out.println(studentMark); 
      mark.click(); 
      mark.sendKeys(Integer.toString(studentMark)); 
     } 
0

該工作示例(從您provied的HTML)填充所有可見的單元格:

WebDriver driver = new FirefoxDriver(); 
driver.get("https://fiddle.jshell.net/40vr7top/show"); 
driver.switchTo().frame(0); 

List<WebElement> inputs = driver.findElements(By.cssSelector("td.activityTableBody input")); 
for (WebElement input : inputs) { 
    input.clear(); 
    input.sendKeys("99"); 
} 
+0

它沒有工作,請看我編輯的問題 – azhar

+0

你應該提供頁面源代碼或一個可重複的例子。沒有足夠的信息來提供可以立即使用的答案。 –

+0

請看用html編輯的問題 – azhar

相關問題