VB.net 2019搭配Selenium无法获取元素字体颜色的解决求助
正确获取元素字体颜色的实现方案
- 你当前返回错误颜色值的核心原因是:
FindElements方法返回的是匹配类名的元素集合,不是单个元素对象,直接读取集合属性无法拿到正确的样式值。 - 要获取渲染后的实际字体颜色,需要调用Selenium的
GetCssValue("color")方法,该方法会返回元素最终生效的字体颜色rgba/rgb字符串。
参考实现代码
Dim needExecute As Boolean = False Try ' 获取所有匹配redtext类的元素集合 Dim redFontElements = td.FindElements(By.ClassName("redtext")) If redFontElements.Count > 0 Then ' 取第一个匹配元素,获取渲染后的字体颜色 Dim textColor = redFontElements(0).GetCssValue("color") ' 匹配红色的标准色值,vbRed对应的RGB为(255,0,0) If textColor.ToLower() = "rgba(255, 0, 0, 1)" OrElse textColor.ToLower() = "rgb(255, 0, 0)" Then needExecute = True End If End If Catch ex As Exception ' 按需添加异常处理逻辑 End Try If needExecute Then ' 此处写字体为红色时要执行的操作 End If
如果需要更灵活的颜色校验,可以拆分rgba字符串提取R、G、B三个通道的数值,和vbRed对应的(255,0,0)做数值对比即可。
内容的提问来源于stack exchange,提问作者Raky
相关产品推荐
相关产品推荐

