如何在Selenium Python中获取CSS类样式块?
获取元素CSS类对应的样式值问题
相关代码
HTML代码
<a id="fld_2418083_6_opt1730754" data-label="F°" data-field="fld_2418083" data-active="btn-primary" data-default="btn-default" class="btn btn-primary" data-value="0" aria-labelledby="fld_2418083Label" title="Choose OptionF°">F°</a>
CSS代码
.btn-primary{ background-color: #438bca; }
错误代码及问题
我用这段Selenium Python代码尝试获取对应CSS样式块,结果报错:
cls_name = element.get_attribute("class") bg_color = cls_name.value_of_css_property("background-color") print(f'{ bg_color = }')
问题根源:get_attribute("class")返回的是字符串格式的类名,而value_of_css_property是Selenium WebElement对象独有的方法,不能直接在字符串上调用这个方法,这就是报错的原因。
正确实现方式
直接对已定位到的WebElement对象调用value_of_css_property方法即可获取对应样式值:
# 前提:element是已经定位好的目标元素 bg_color_rgb = element.value_of_css_property("background-color") # 若需要将rgb格式转为十六进制格式(和CSS里的写法一致) from selenium.webdriver.support.color import Color bg_color_hex = Color.from_string(bg_color_rgb).hex print(f'background-color: {bg_color_hex}')
期望输出
background-color: #438bca
内容的提问来源于stack exchange,提问作者Sasidharan Rajagopal
相关产品推荐
相关产品推荐

