c# - 如何使用 Selenium、C# 从 dom 元素获取所有 css 样式

标签 c# selenium selenium-webdriver webdriver selenium-chromedriver

我的任务是从网页创建最小化的 css 文件。所以我需要 all css-properties 中的值来自所有 dom 元素。 但我不知道:如何从特定的 dom 元素获取所有计算的 css 样式?

我有以下代码:

var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("headless");

var browser = new ChromeDriver(chromeOptions);

var url = "https://example.com";
browser.Navigate().GoToUrl(url);

var domElement = browser.FindElement(By.TagName("html"));

我想要:

var styles = domElement.GetComputedCssStyles();

最佳答案

您可以使用IWebElementgetCSSValue方法。例如,要获取元素的背景颜色,您可以尝试以下代码。

var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("headless");

var browser = new ChromeDriver(chromeOptions);

var url = "https://example.com";
browser.Navigate().GoToUrl(url);

var domElement = browser.FindElement(By.TagName("html"));
var color = domElement.GetCssValue("background-color");

您可以使用 selenium C# 尝试以下 javascript 代码;

string properties = ((IJavaScriptExecutor)driver).ExecuteScript("return window.getComputedStyle(arguments[0],null).cssText", domElement);
strArr = properties.split(";")

for (count = 0; count <= strArr.Length - 1; count++)
{
    console.log(strArr[count]);
}

关于c# - 如何使用 Selenium、C# 从 dom 元素获取所有 css 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50601267/

相关文章:

python - 在selenium和python中获取类的值

java - 将数据库结果与 html 表进行比较 - Selenium Webdriver - Java

c# - 将简单的 List<myClass> 绑定(bind)到 Combobox

c# - 如何使用 SelectSingleNode 获取属性值?

C# 二叉搜索树 - 堆栈溢出 - 调试

google-chrome - 在 Selenium ChromeDriver 中使用 native 消息传递?

Java Appium Android - 如何处理侧边栏或左侧面板?

python - 爬虫收集了大部分数据,同时遗漏了少数数据

python - 如何使用 selenium 驱动程序 python 单击覆盖层中的第一个链接

c# - 在 Windows Azure 上使用 C# 在电子邮件中发送附件