2017-12-06 5 views
0

テーブルのすべての行を繰り返し、特定の列データの検証を確認したいと考えています。私が得たセレンテスト用のテーブルを繰り返します。

WebElement tableElement = webDriver.findElement(By.xpath("//[@id='tableID']/tbody/tr")); 
    String rowElement = null; 

    for(int i = 0; i < 9 ; i ++){ 
     rowElement = tableElement.findElement(By.xpath("//*[@id='column" + i + "']/td[3]")).getText(); 
     System.out.println(rowElement.toString()); 
    } 

エラー - >私はテーブルIDを再確認し、それが正しいですが

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='tableID']/tbody/tr"} 

。私はセレンのテストに新しいです。データを取得するのを手伝ってください。

+0

あなたのテーブルIDは正しいかもしれませんが、あなたのロケータは正しくありません。ダブルスラッシュの後にアスタリスクがありません。結果のtableElementはnullです。 –

+0

plsはあなたのコードでエラー – Kaustav

答えて

0

xpathでないIDを使用してテーブルを検索してください。

WebElement tableElement = webDriver.findElement(By.id("tableId")); 
0

私は、コードをテストしたが、以下、私は自分のオリジナルのポストに私のコメントにまでほのめかす補正されていない:私はそれはおそらく、テーブルのレコードの配列を作成するのが最善だと思うが、

WebElement tableElement = webDriver.findElement(By.xpath("//*[@id='tableID']/tbody/tr")); 
    String rowElement = null; 

    for(int i = 0; i < 9 ; i ++){ 
     rowElement = tableElement.findElement(By.xpath("//*[@id='column" + i + "']/td[3]")).getText(); 
     System.out.println(rowElement.toString()); 
    } 

List <WebElement> rows = webDriver.findElements(By.xpath("//tr[@id='tableID']"); 

for (int i = 0; i < rows.size(); i++) { 
    String rowElement = rows.get(i).findElement(By.xpath("//*[@id='column" + i + "']/td[3]")).getText(); 
} 

以上も「空気コード」で、テストされ、より多くの擬似コードとしてそれを取る、タイプミスが含まれている場合がありません。

+0

を具体化しています。どこにtableElementがありますか? – Kaustav

+0

私は単に私の行を[]といいます。私は私のサンプルコードを調整していないことを認識しました。私は今それを修正します。 –

+0

それでも正しくない可能性があります。問題の実際のHTMLコードを見ずに私は確信が持てません。 –

関連する問題