zoukankan      html  css  js  c++  java
  • 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'))
  • 相关阅读:
    设置共享文件夹大小
    About IConfigurationSectionHandler Interface
    zoj 1050
    SQL Server 数据库优化经验总结
    一、页面输出缓存
    [转]深入解读 ADO.NET 2.0 的十大最新特性
    ASP.NET 缓存学习
    [转]写给ASP.NET程序员:网站中的安全问题
    [转] ASP.NET 性能提升秘诀之管道与进程优化
    实战 SQL Server 2005 镜像配置
  • 原文地址:https://www.cnblogs.com/landhu/p/9946114.html
Copyright © 2011-2022 走看看