2017-02-22 28 views
0

現在、Visual StudioでC#とSeleniumを使って自動化をテストしています。だから私の問題は次のとおりです。私はからテキストを抽出する要素は次のとおりです。入力クラス内の要素からテキストを抽出します

<input class="showroomprice pricehistory" type="text" data-showroomprice="100000" value="100.000" data-tooltip="true" data-html="true" data-original-title="<div class=&quot;price-history-popup&quot;> 
<table> 
    <thead> 
     <tr> 
      <th> 
       Datum 
      </th> 
      <th> 
       Showroom 
      </th> 
     </tr> 
    </thead> 
    <tr> 
     <td> 
      22 feb 2017 
     </td> 
     <td> 
      € 100.000 
     </td> 
    </tr> 
    <tr> 
     <td> 
      27 jul 2016 
     </td> 
     <td> 
      € 399.999 
     </td> 
    </tr> 
    <tr> 
     <td> 
      20 jan 2016 
     </td> 
     <td> 
      € 333.333 
     </td> 
    </tr> 
    <tr> 
     <td> 
      20 jan 2016 
     </td> 
     <td> 
      € 123 
     </td> 
    </tr> 
    <tr> 
     <td> 
      20 jan 2016 
     </td> 
     <td> 
      € 12.333 
     </td> 
    </tr> 
</table> 
</div>"> 

今、あなたが見ることができるように、DIVおよび表は、私が見つけ要素(「>最後の行のdiv要素の後を参照してください)入力クラスの一部です。私が必要とするのは、すべてのテキストを含む文字列を作成する必要があるということです。任意のアイデア?

ありがとう!

+1

テキストを抽出する要素は何ですか? 'input'か' table'ですか? – Andersson

+0

レンダリングされたHTMLは、上記のようにdiv +テーブルを入力の 'original-data-title'属性の文字列として実際に表示しますか? – Dillanm

答えて

0

すべてのセルのテキストを連結するループ、サンプルJavaコード

import java.util.List; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.ie.InternetExplorerDriver; 

public class WebTableExample 
{ 
    public static void main(String[] args) 
    { 
     WebDriver driver = new InternetExplorerDriver(); 
     driver.get("test url");  
     string tableText; 
     WebElement table_element = driver.findElement(By.id("yourtable id")); 
     List<WebElement> tr_collection=table_element.findElements(By.xpath("id('testTable')/tbody/tr")); 

     int row_num,col_num; 
     row_num=1; 
     for(WebElement trElement : tr_collection) 
     { 
      List<WebElement> td_collection=trElement.findElements(By.xpath("td")); 

      col_num=1; 
      for(WebElement tdElement : td_collection) 
      { 
      // making all cells text to tableText 
       tableText = tableText + tdElement.getText(); 

       col_num++; 
      } 
      row_num++; 
     } 
    } 
} 
+0

テーブルが実際には 'input'の' data-original-title'属性の一部として文字列の一部になっているので、これはうまくいかないと思います – Dillanm

+0

その場合、より簡単で属性値を抽出してすべてを置き換えますTD、TRタグ(空白あり) – Anil

関連する問題