无法在C#中使用HtmlDocument

时间:2016-06-16 04:51:22

标签: c# selenium

我使用Selenium创建控制台应用程序以从表中获取文本。

尝试使用代码:

IList<IWebElement> tableRows = browser.FindElementsByXPath("id('column2')/tbody/tr");
var doc = new HtmlDocument();
doc.LoadHtml(tableRows);

此错误如:

  

'HtmlDocument'不包含带0参数的构造函数

I read this answer from question

Stackoverflow中的几乎所有人都可以使用:

new HtmlDocument

为什么我不能使用它。我尝试使用Winform Application,但我也无法使用HtmlDocument。

HtmlDocument似乎只有LoadHmtl(String)。但我的代码是IList<IWebElement>

我不知道如何将其转换为HTML字符串以添加到doc

1 个答案:

答案 0 :(得分:1)

IWebElement table = browser.FindElement(By.Id("column2");
var doc = new HtmlDocument();
doc.LoadHtml(table.InnerHtml);

首先,您可以使用selenium获取表格元素...,如果您选择使用敏捷包,则需要使用html源发送到LoadHtml方法字符串变量,以便你需要做的是找到html块(在你的情况下是表)把它作为IWebElement并使用table.InnerHtml将其发送到LoadHtml

您也可以发送整页来源doc.LoadHtml(driver.PageSource);