2016-07-29 7 views
1

Ich benutzte Selenium, um Daten von einer Tabelle auf der Webseite zu erhalten.Wie Leerzeichen zwischen den Tags in Selen hinzufügen?

Ich habe HTML mit Struktur:

<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> 

ich diesen Code unter Verwendung aller Werte in dieser Tabelle zu erhalten:

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

Aber es zeigt Ergebnis wie: 10Good LuckNowadayhookzp

I möchte so aussehen:

1 0 Good Luck Nowaday hookzp

Leerzeichen zwischen einem Tag einfügen.

denke ich &nbsp; wie folgt hinzufügen sollte:

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

Und:

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

Antwort

1

Sie sollten wie unten probieren: -

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

Editiert: - Sie können auch Get separate Element zusammen mit | Separator xpath wie unten verwenden: -

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

Hope it ... :)

+0

Es hilft, aber es funktioniert nicht. Bei 'LstTDElements' Werten war:' 10Good LuckNowadayhookzp'. – vanloc

+0

@ VănLộc ok versuche mit 'GetAttribute (" textContent ")' ... Siehe aktualisierte Antwort ... In meinem Fall funktionieren beide gut .. –

+0

Werte 'textContent' sollte sein? In HTML ist ein Beispiel, in einem realen Projekt hat es viele Tags in der Tabelle, so dass Sie nicht nur für '10Good LuckNowadayhookzp' setzen können. – vanloc

Verwandte Themen