<table id="tblRenewalAgent" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td>
<div class="form-row">
<div id="trStatus" style="">
<div id="trFees" class="form-row" style="">
<div id="trFees1" class="form-row ctrl-column" style="">
<div id="trFilingReceipt" class="form-row" style="">
<div id="trComments" class="form-row" style="">
<div id="trContact" class="form-row" style="">
<div id="trEmail" class="form-row" style="">
<div id="trPhone" class="form-row" style="">
<div id="trCell" class="form-row" style="">
<div class="form-row">
<div class="form-row ctrl-column">
<div id="trAmountPaid">
<div id="trBalanceDue" class="form-row">
</td>
</tr>
</tbody>
</table>
预期:
我想收集所有div id并将其存储为数组 即时通讯使用c#。我该怎么做?请帮帮我们
答案 0 :(得分:0)
WebDriverWait wait = new WebDriverWait(driver, timeout);
List<WebElement> totalrow = wait.until(ExpectedConditions
.presenceOfAllElementsLocatedBy(By.Id("tblRenewalAgent"));
for (int i = 0; i <= totalrow.size(); i++) {
String clasRow = //form-row;
try {
WebElement element = ExpectedBehaviors
.expectPresenceofElementBy(driver, By.class(clasRow),
getAlertTimeout());
if (element.getText().trim().equals("EXPECTED VALUE")) {
//"PERFORM YOUR ACTION"
break;
}
} catch (Exception e) {
//"You can add your exception and error message
}
}
答案 1 :(得分:0)
第一步是创建一个XmlDocument。您需要包含System.Xml命名空间,如下所示:
using System.Xml;
下面我创建了一个示例应用程序,我将解释:
首先,您应该创建xml文档对象并加载一些xml。为了演示,我已逐字地包含了您的HTML,但您可以通过加载文件来替换它。例如。
var html = new XmlDocument();
html.LoadXml(@"<table id='tblRenewalAgent' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr>
<td>
<div class='form-row'/>
<div id='trStatus' style=''/>
<div id='trFees' class='form-row' style=''/>
<div id='trFees1' class='form-row ctrl-column' style=''/>
<div id='trFilingReceipt' class='form-row' style=''/>
<div id='trComments' class='form-row' style=''/>
<div id='trContact' class='form-row' style=''/>
<div id='trEmail' class='form-row' style=''/>
<div id='trPhone' class='form-row' style=''/>
<div id='trCell' class='form-row' style=''/>
<div class='form-row'/>
<div class='form-row ctrl-column'/>
<div id='trAmountPaid'/>
<div id='trBalanceDue' class='form-row'/>
</td>
</tr>
</tbody>
</table>");
你也错过了你的div的结束标签,我让他们自己关闭了这个演示。
我还创建了一个静态通用的字符串列表,我们将添加所有的id字符串,如下所示:
static List<string> ids = new List<string>();
我把它置于我的Main方法之上。
最后,您应该在每个文档子节点上调用我在下面定义的 WalkForIds 方法:
foreach (XmlNode elem in html.ChildNodes)
WalkForIds(elem);
WalkForIds方法以递归方式查看HTML以查找所有ID。这是定义:
private static void WalkForIds(XmlNode node)
{
if(node.HasChildNodes)
foreach (XmlNode child in node.ChildNodes)
WalkForIds(child);
if (node.Attributes == null) return;
foreach (XmlAttribute attr in node.Attributes)
if (attr.Name == "id")
ids.Add(attr.Value);
}
在此之后,您会发现 ids 通用列表将包含HTML中的所有ID。