场景:运行UI自动化过程中,为了更好的显示这个过程,可以进行元素高亮,以显眼的颜色来提示测试人员目前操作到哪一步了
办法:通过driver.exectue_scirpt() 执行JavaScript代码,执行的JavaScript代码是支持传入参数的,甚至可以传入定位到的元素
思路:通过对element进行改装
from selenium import webdriver
from time import sleep
def find(driver,by,loc):
'''by代表定位方式,loc代表元素定位表达式'''
STYLE = "background: yellow; border: 2px solid red;" # 高亮的样式
element = driver.find_element(by,loc)
driver.execute_script("arguments[0].setAttribute('style', arguments[1]);",element, STYLE)
return element
'''
def find(self,by, expr):
element = self.dr.find_element(by,expr)
js = """
arguments[0].style.border="2px solid red";
"""
self.dr.execute_script(js, element)
return element
'''
driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
find(driver,"id","kw").send_keys("好好学习")
sleep