C# Can';t在C中使用HtmlDocument#
我使用Selenium创建控制台应用程序以从表中获取文本 尝试使用以下代码:C# Can';t在C中使用HtmlDocument#,c#,selenium,C#,Selenium,我使用Selenium创建控制台应用程序以从表中获取文本 尝试使用以下代码: IList<IWebElement> tableRows = browser.FindElementsByXPath("id('column2')/tbody/tr"); var doc = new HtmlDocument(); doc.LoadHtml(tableRows); IList tableRows=browser.FindElementsByXPath(“id('column2')/tbod
IList<IWebElement> tableRows = browser.FindElementsByXPath("id('column2')/tbody/tr");
var doc = new HtmlDocument();
doc.LoadHtml(tableRows);
IList tableRows=browser.FindElementsByXPath(“id('column2')/tbody/tr”);
var doc=新的HtmlDocument();
doc.LoadHtml(tableRows);
此错误类似于:
“HtmlDocument”不包含接受0个参数的构造函数
Stackoverflow中的几乎所有人都可以使用:
新HtmlDocument
为什么我不能用这个。我尝试使用Winform应用程序,但我也不能使用HtmlDocument
而HtmlDocument
似乎只是LoadHmtl(String)
。但是我的代码是IList
我不知道如何将其转换为HTML字符串以添加到doc
IWebElement table = browser.FindElement(By.Id("column2");
var doc = new HtmlDocument();
doc.LoadHtml(table.InnerHtml);
首先,您可以使用selenium获取表元素,如果您选择使用agility pack,则需要使用html源代码发送到LoadHtml
methodstring变量,因此您需要做的是找到html块(在您的示例中是表),将其作为IWebElement,并使用table.InnerHtml将其发送到LoadHtml
您还可以发送完整的页面源代码doc.LoadHtml(driver.PageSource)代码>您是否正确使用了HTMLability Pack,因为他们正在HtmlDocument类中使用它。请尝试以下操作:在评论前建议使用HTMLabilitypack
安装程序包HTMLabilitypack
。所以我认为HtmlDocument
位于命名空间System.Windows.Web
中。我将试用HtmlAgility Pack
。谢谢。何时安装此软件包。它起作用了。但在这个问题上,我有一个问题,比如LoadHtml只接受字符串HTML。但是我想添加行:IList tableRows=browser.FindElementsByXPath(“id('column2')/tbody/tr”)代码>到这个。有什么方法可以做到这一点吗?谢谢为什么不继续使用selenium???,你为什么要使用agility pack?也许可以提供一些解释,而不仅仅是代码:)学习它总是很有帮助的,不仅是得到原始答案。谢谢@leon barkan