C# 如何在Selenium中的标记之间添加空格?
我使用Selenium从网页上的表中获取数据 我有结构如下的HTML: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
<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> </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"));
}