selenium 操作过程中,元素标红高亮的两种实现方式

在使用selenium时,动作元素标红高亮,在定位问题时相当好用,有以下二种方法可以实现

一、使用js将元素属性修改

    这也是网上大部分的实现方式,但有时候会有点小问题,代码如下:

     

只写其实某一段函数
......

def apply_style(self, element):
        self.driver.execute_script("arguments[0].setAttribute('style', arguments[1]);", element)



def set_xxx(self,element):
    original_style = element.get_attribute('style')
    self.apply_style(element, "background:green; border:2px solid red;")
    screen_shot = self.driver.get_screenshot_as_png()  #比如这里截图动作
    self.apply_style(element, original_style)  # 截图完了还原元素属性

 

二、比较复杂了,但相对稳定点

     基本思路是:先截图,然后再拿到元素的位置,再使用pillow模块对图进行处理

    拿图的坐标,之前我写过一个文章中有说明:

    

先将图存下,然后读取
img = Image.open(BytesIO(png_data))
brush = ImageDraw.Draw(img)
imgelement = driver.find_element_by_xpath('//img[@src="rand!loginRand.action"]')
location = imgelement.location  #获取元素x,y轴坐标
size=imgelement.size  #获取元素的长宽
blank_height = 150

rect = (0, blank_height, location.width, size.height)
canvas = Image.new('RGB', (width, height), (255, 255, 255))
out_data = BytesIO()
canvas.save(out_data, format('PNG'))

 

转载于:https://www.cnblogs.com/landhu/p/9946114.html

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值