我有一个用HTML表的结果填充此字典的问题。 HTML看起来像这样:
<td class="name">
<span data-bind="text:'hierarchyId'"></span>
<span data-bind="text:'name'"></span>
</td>
我想用每个td的名称填充HiearchyId和名称的字典,但是最终只填充了第一列,而在第二次迭代中,返回的错误是字典中已经存在相同的ID。 请指教。
public Dictionary<string,string> ListOfSections()
{
Dictionary<string,string> newDictionary = new Dictionary<string,string>();
IList<IWebElement> tdSectionName = sectionTable.FindElements(By.XPath("//td[@class='name']"));
foreach (IWebElement element in tdSectionName)
{
IWebElement hierarchy = element.FindElement(By.XPath("//span[@data-bind='text: hierarchyId']"));
IWebElement name = element.FindElement(By.XPath("//span[@data-bind='text: Name']"));
newDictionary.Add(hierarchy.Text, name.Text);
}
return newDictionary;
}
答案 0 :(得分:2)
将if (action.type === "SIGN_OUT")
添加到xpath以获得如下所示的子元素,或使用css选择器:
.//
Css选择器:
public Dictionary<string,string> ListOfSections()
{
Dictionary<string,string> newDictionary = new Dictionary<string,string>();
IList<IWebElement> tdSectionName = sectionTable.FindElements(By.XPath("//td[@class='name']"));
foreach (IWebElement element in tdName)
{
IWebElement hierarchy = element.FindElement(By.XPath(".//span[@data-bind='text: hierarchyId']"));
IWebElement name = element.FindElement(By.XPath(".//span[@data-bind='text: Name']"));
newDictionary.Add(hierarchy.Text, name.Text);
}
return newDictionary;
}