首页 > 解决方案 > 使用 Linq 将网页表解析为列表

问题描述

我有这段代码可以正常工作:

        IList<IWebElement> allElement = driver.FindElements(By.XPath("//*[@id=\"users_table\"]"));
        foreach (IWebElement element in allElement)
        {
            string cellText = element.Text;
            Console.WriteLine(cellText);
        }

如何将值写入列表而不是控制台?我找到了一个例子,但就我而言,我没有td元素。这样做的正确方法是什么?

        var HTMLTable = driver.FindElement(By.XPath("//*[@id=\"users_table\"]"))
          .FindElements(By.TagName("td"))
          .Select(e => e.Text)
          .ToList();

编辑:

我努力了:

    var HTMLTable = driver.FindElement(By.XPath("//*[@id=\"users_table\"]"))
      .Select(e => e.Text)
      .ToList();

标签: c#seleniumselenium-webdriver

解决方案


它应该很简单:

var result = driver.FindElements(By.XPath("//*[@id=\"users_table\"]"))
    .Select(e => e.Text)
    .ToList();

在编辑部分的代码段中,您FindElement应该返回单个元素而不是集合,就像FindElements这样。


推荐阅读