2016-07-15 11 views
0

ページの要素を特定しようとしています。私はテーブルを持っており、複数の入力を持つ行がたくさんあります。テーブル行から入力にアクセスするには?Selenium Webドライバのテーブルから要素を取得する方法JA

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を持つ特定の入力要素を見つけて試すことができます。 idが特定の要素に対して使用可能な場合、id自体を使用できます。また、あなたのコンストラクタで、あなたの@FindBy文の前

WebDriver driver; 

を追加

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

にし、あなたのクラスの試みを

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

から、あなたのコードを変更してみてください。

関連する問題