You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Selenium WebDriver C#获取元素原始style属性值

解决Selenium获取原始style属性值的问题

这是个很常见的坑——Selenium的GetAttribute("style")返回的是浏览器计算渲染后的样式值,而不是HTML源码里写的原始属性内容。浏览器会自动把十六进制颜色这类格式统一转换成RGB格式,所以你拿到的是rgb(173, 255, 47),而不是你想要的background:#ADFF2F。

解决方案:用JavaScript直接获取原始属性

要拿到HTML里的原始style属性字符串,我们可以借助JavaScript来直接读取DOM元素的原始属性值,绕过浏览器的样式计算。

在C#中可以这样实现:

// 定位目标元素
IWebElement highlightedText = _driver.FindElement(By.Id("firstHeading")).FindElement(By.CssSelector("th-highlight-span"));

// 将驱动转换为JavaScript执行器
IJavaScriptExecutor jsExecutor = (IJavaScriptExecutor)_driver;

// 执行JS脚本获取原始style属性值
string actualHighlightColour = (string)jsExecutor.ExecuteScript("return arguments[0].getAttribute('style');", highlightedText);

可选:精准提取背景色

如果你的style属性里还有其他样式,只想单独拿到背景色的原始值,可以用正则匹配来精准提取:

string bgColorRaw = (string)jsExecutor.ExecuteScript(
    "return arguments[0].getAttribute('style').match(/background:#[0-9A-Fa-f]+/)[0];", 
    highlightedText
);

这段代码会直接返回background:#ADFF2F,省去后续字符串处理的步骤。

内容的提问来源于stack exchange,提问作者Tester_Giant1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:00:09