C# 如何在Selenium中的标记之间添加空格?

C# 如何在Selenium中的标记之间添加空格?,c#,html,selenium,C#,Html,Selenium,我使用Selenium从网页上的表中获取数据 我有结构如下的HTML: <table> <tbody> <tr> <td> <span>1</span> <span>0</span> <br> <span> <span>Good Luck

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

希望它能帮上忙……:)

对不起,它坏了。在
lstdelements
处,值为:
10Good luckknowadayhookzp
@VănLộc确定尝试使用
GetAttribute(“textContent”)
…查看更新的答案…在我的情况下,两者都工作正常..值
textContent
?在HTML中就是一个例子,在一个实际的项目中,它在表中有许多标记,因此您不能只为
10Good luckknowadayhookzp
@VănL设置ộc当然是
textContent
相当于文本。但是,您可以使用xpath中带有或条件的
|
分隔符来获取单独的元素,该元素将为您提供所有分隔的文本。尝试更新答案:)非常感谢@SaurabhGaur。当你的答案被编辑后,它将创建许多行(在我找到的6000个标签中),我不知道如何安排正确的列。因为每个列中的数据都可以为null,或者其中有许多值。当前,我有
lstTable
包含两列(实际为10列)。和
lstdelement
包含所有数据需求。如何使用正确的列将
lstitlement
集成到
lstable
。是否在有条件的情况下使用foreach?
<b>Nowaday<br></b>
<p>&nbsp;</p>
<p>hook<br>zp</p>
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);
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"));
}