2016-07-29 11 views
1

私は、Webページ上のテーブルからデータを取得するためにSeleniumを使用していました。Seleniumのタグ間に空白を追加するには?

私は構造でHTMLを持っている:

<table> 
    <tbody> 
    <tr> 
     <td> 
      <span>1</span> 
      <span>0</span> 
      <br> 
      <span> 
      <span>Good Luck</span> 
      <img src="/App_Themes/Resources/img/icon_tick.gif" width="3" height="7"> 
      </span> 
     </td> 
    </tr> 

    <tr> 
     <td> 
     <b>Nowaday<br></b> 
     <p>hook<br>zp</p> 
     </td> 
    </tr> 
    </tbody> 
</table> 

私は、この表内のすべての値を取得するためにこのコードを使用して:

ReadOnlyCollection<IWebElement> lstTable = browser.FindElements(By.XPath("table/tbody/tr")); 
foreach (IWebElement val in lstTable) 
{ 
    ReadOnlyCollection<IWebElement> lstTDElement = val.FindElements(By.XPath("td")); 
} 

をしかし、それは同様の結果を示しています 10Good LuckNowadayhookzp

私はこのようにしたい:

1 0 Good Luck Nowaday hookzp

タグの間に空白を入れます。

私はこのような &nbsp;を追加すべきだと思う

<span>1</span> 
<span>&nbsp;</span> 
<span>0</span> 

そして:

<b>Nowaday<br></b> 
<p>&nbsp;</p> 
<p>hook<br>zp</p> 

答えて

1

あなたは以下のように試してみてください: -

ReadOnlyCollection<IWebElement> lstTDElements = browser.FindElements(By.TagName("td")); 
var allTextList = lstTDElements.Select(El => EL.Text).ToList(); 
string FinalString = allTextList.Aggregate(new System.Text.StringBuilder(), (sb, s) => sb.Append(" "+s)).ToString().Replace("\n", ""); 
Console.WriteLine(FinalString); 

編集: - あなたがすることもでき別の要素をtogethorまたはで取得する以下のようにxpathを使用して3210セパレーター: -

ReadOnlyCollection<IWebElement> lstTable = browser.FindElements(By.XPath("table/tbody/tr")); 
foreach (IWebElement val in lstTable) 
{ 
    ReadOnlyCollection<IWebElement> lstTDElement = val.FindElements(By.XPath("//td/span | //td/b | //td/p")); 
} 

+0

申し訳ありません:) ...それがお役に立てば幸いですが、それは働いていません。 'lstTDElements'の値は' 10Good LuckNowadayhookzp'でした。 – vanloc

+0

@VănLộcok GetAttribute( "textContent") 'を使って試してください...更新された答えを見てください...私の場合、両方とも正常に動作しています.. –

+0

値' textContent'は? HTMLの例では、実際のプロジェクトではテーブルに多くのタグがあるので、 '10Good LuckNowadayhookzp'のためだけに設定することはできません。 – vanloc

関連する問題