使用硒循环遍历表(C#)

时间:2019-03-16 18:58:59

标签: c# selenium selenium-webdriver

我有一个用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;
    }

1 个答案:

答案 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;
}