2016-07-15 69 views
0

我正在尝试识别页面的元素。我有桌子,有很多行与多个输入。如何访问表格行的输入?如何从Selenium Web驱动程序中的表中获取元素JAVA

This is my java class 

public class Setting extends Page { 

    /**Identify Elements of the page*/ 

    @FindBy(id="table-settings") 

    private WebElement Table; 

    //Constructor 
    public Setting() 
    { 
     /**Initialize PageFactory WebElements*/ 
     PageFactory.initElements(driver, this); 
    } 

} 

回答

0

请参阅下面的代码,做出相应的调整,让你找到它

@Test 
public void test() { 
    WebElement Webtable=driver.findElement(By.id("TableID")); // Replace TableID with Actual Table ID or Xpath 

    List<WebElement> TotalRowCount=Webtable.findElements(By.xpath("//*[@id='TableID']/tbody/tr")); 

    System.out.println("No. of Rows in the WebTable: "+TotalRowCount.size()); 
    // Now we will Iterate the Table and print the Values 

    int RowIndex=1; 

    for(WebElement rowElement:TotalRowCount) 
    { 
     List<WebElement> TotalColumnCount=rowElement.findElements(By.xpath("td")); 
     int ColumnIndex=1; 

     for(WebElement colElement:TotalColumnCount) 
     { 
      System.out.println("Row "+RowIndex+" Column "+ColumnIndex+" Data "+colElement.getText()); 
      ColumnIndex=ColumnIndex+1; 
     } 
     RowIndex=RowIndex+1; 
    } 
} 
+0

如果有效,那么你可以评价问题 –

0

试试这个任何障碍我知道: 您可以使用XPath,而不是ID查找特定的input元素尝试。如果id可用于特定元素,则可以使用id本身。另外,在你的构造函数,尝试从

public Setting() 
{ 
    /**Initialize PageFactory WebElements*/ 
    PageFactory.initElements(driver, this); 
} 

改变你的代码,以

public Setting(WebDriver driver) 
{ 
    this.driver = driver; 
    /**Initialize PageFactory WebElements*/ 
    PageFactory.initElements(driver, this); 
} 

,并在您尝试类的@FindBy语句前加上

WebDriver driver; 

相关问题