【问题标题】:Determining styles for a html node确定 html 节点的样式
【发布时间】:2023-03-16 14:50:01
【问题描述】:
我有很多用 MS Word 生成的 html 文件。 html 代码主要是带有文本节点、段落、跨度等的表格。这些文件不包含 javascript 或表现出任何其他动态行为。但他们拥有的是 CSS 样式。
htmlagilitypack 是否有办法在 CSS 部分中声明 html 节点时确定其样式?据我了解,htmlagilitypack 在创建 DOM 时不会解析 CSS。对吗?
如果 htmlagilitypack 无法解析 CSS 样式,最好的工具是什么?我应该改用 Selenium 吗?
【问题讨论】:
标签:
c#
html
css
selenium
html-agility-pack
【解决方案1】:
Selenium 通过 Javascript 提供答案。
ChromeOptions Options = new ChromeOptions();
Options.AddArgument("--headless");
IWebDriver Driver = new ChromeDriver(Options);
Driver.Navigate().GoToUrl(@"file://Some_File.html");
// The correct style
var properties = ((IJavaScriptExecutor)Driver).ExecuteScript("return window.getComputedStyle(arguments[0],null).cssText", e);
Driver.Close();
Driver.Quit();