如何在 Selenium Web Driver JAVA 中从 table 获取元素

How to get elements from table in Selenium Web Driver JAVA

我正在尝试识别页面的元素。我有 table 并且有很多行具有多个输入。如何从 table 行访问输入?

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

}

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

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

试试这个: 您可以尝试使用 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);
}   

并在您的 class 中尝试添加

WebDriver driver;

在你的@FindBy 语句之前。