0

我正在尝试识别页面的元素。我有一张桌子,有很多行有多个输入。如何从表行访问输入?

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);
    }   

}
4

2 回答 2

1

请参考下面的代码,进行相应的更改,如果您发现其中有任何障碍,请告诉我

@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;
    }
}
于 2016-07-15T09:16:14.977 回答
0

试试这个:您可以尝试使用 xpath 而不是 id 查找特定的输入元素。如果 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);
}   

在你的课堂上尝试添加

WebDriver driver;

在您的 @FindBy 声明之前。

于 2016-07-15T09:24:55.690 回答