Python获取Web节点颜色并判断
获取web中的某个节点的css属性,获取颜色,判断颜色是否为指定颜色。(rgb转16进制)。
Python中有时候我们无法判断按钮是否被选中,但是可以通过颜色来判断该按钮是否已经被选中。
我们通过value_of_css_property 来获取到的颜色是rgb数据,需要把它转换成16进制字符串,再进行判断。
例如:我们来获取百度页面的“百度一下”的背景颜色,并判断是否为#3385FF

1.首选获取这个按钮的rgb值
driver.get("http://www.baidu.com")
link = driver.find_element_by_id("su")
#获取到gba值
gbaColor = link.value_of_css_property("background")
print (gbaColor)
#打印出来的值是 rgb(51,133,255)
#这样我们是不好判断的,需要把它转换成16进制: #3385FF
2.rgb转16进制字符串( rgb(51,133,255) >> "#3385FF" )
##导入re
import re
def RGB_to_Hex(rgb): ###rgb转16进制
r,g,b = map(int, re.search(
r'rgb\((\d+),\s*(\d+),\s*(\d+)', rgb).groups())
rgbstrs = '#'
rgbstrs += str(hex(r))[-2:].replace('x','0').upper()
rgbstrs += str(hex(g))[-2:].replace('x','0').upper()
rgbstrs += str(hex(b))[-2:].replace('x','0').upper()
return rgbstrs
from selenium import webdriver
import time
import re
driver = webdriver.Chrome()
#rgb转16进制
def RGB_to_Hex(rgb):
r,g,b = map(int, re.search(
r'rgb\((\d+),\s*(\d+),\s*(\d+)', rgb).groups())
rgbstrs = '#'
rgbstrs += str(hex(r))[-2:].replace('x','0').upper()
rgbstrs += str(hex(g))[-2:].replace('x','0').upper()
rgbstrs += str(hex(b))[-2:].replace('x','0').upper()
return rgbstrs
driver.get("http://www.baidu.com")
link = driver.find_element_by_id("su")
colora = link.value_of_css_property("background")
print (colora)
#调用函数获取16进制字符串
color = RGB_to_Hex(colora)
if color=="#3385FF":
print("颜色比对成功")
else:
print("颜色比对失败")
打印结果:

————————————————
版权声明:本文为CSDN博主「生息成长程序」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36237672/article/details/105412885
浙公网安备 33010602011771号