• 【python+selenium】截取某个元素


    一、 selenium截图
    1.selenium提供了几个截取全屏的方法
    - get_screenshot_as_file(self, filename)
     --这个方法是获取当前window的截图,出现IOError时候返回False,截图成功返回True。
     filename参数是保存文件的路径。
     > driver.get_screenshot_as_file('/Screenshots/foo.png')
    - get_screenshot_as_base64(self)
     --这个方法也是获取屏幕截图,保存的是base64的编码格式,在HTML界面输出截图的时候,会用到。

    比如,想把截图放到html测试报告里。
     > driver.get_screenshot_as_base64()
    - get_screenshot_as_png(self)
     --这个是获取屏幕截图,保存的是二进制数据,很少用到.
     > driver.get_screenshot_as_png()
    2.selenium其实也提供了对元素截图的方法,但是会报错。

    二、安装pillow

    在cmd中输入 pip install pillow 安装pillow时报错“Could not find a version that satisfies the requirement pollow (from version).....”

    百度过后升级pip python -m pip install --upgrade pip后再次安装pip时成功

    三、截取某元素

    参考代码

     1 # coding:utf-8
     2 from selenium import webdriver
     3 from PIL import Image
     4 driver=webdriver.Firefox()
     5 driver.get("https://www.baidu.com")
     6 e=driver.find_element_by_id("su")
     7 driver.get_screenshot_as_file(r"C:UsersAdministratorDesktoputton.png")
     8 #打印元素坐标
     9 print(e.location)
    10 #打印元素大小
    11 print(e.size)
    12 left=e.location['x']
    13 top=e.location['y']
    14 right=left+e.size['width']
    15 bottom=top+e.size['height']
    16 im=Image.open(r"C:UsersAdministratorDesktoputton.png")
    17 #对图片进行裁剪
    18 im=im.crop((left,top,right,bottom))
    19 im.save(r"C:UsersAdministratorDesktoputton.png")
  • 相关阅读:
    oracle学习 五 使用存储过程创建一个重置密码为123456的功能(持续更新中)
    oracle学习 四(持续更新中)无法为表空间 MAXDATA 中的段创建 INITIAL 区
    P3224 [HNOI2012]永无乡
    P3521 [POI2011]ROT-Tree Rotations
    UVA11090 Going in Cycle!!
    P1136 迎接仪式
    P1984 [SDOI2008]烧水问题(具体证明)
    P1494 [国家集训队]小Z的袜子
    P2680 运输计划
    P2831 愤怒的小鸟
  • 原文地址:https://www.cnblogs.com/dhs94/p/9147925.html
Copyright © 2020-2023  润新知