美文网首页测试小组-一步步提升测试技能
selenium中如何只截取某个元素的图

selenium中如何只截取某个元素的图

作者: 只想躺赢 | 来源:发表于2017-12-05 15:24 被阅读6次

    如下是根据百度搜索按钮就行的
    1 、通过location获取元素的坐标

     #coding=utf-8
    
    from selenium import webdriver
    
    driver=webdriver.Chrome()
    
    driver.get("https://www.baidu.com")
    
    driver.save_screenshot('button.png')
    
    element=driver.find_element_by_id("su")  
    
    print (element.location)
    

    执行结果如下图:


    image.png

    (ps:每个电脑不同,所以这块的两个值会有不同哦)
    2.通过size获取元素的大小(其实就是把上面代码的最后一行的location改成size就好了)

     #coding=utf-8
     from selenium import webdriver
     driver=webdriver.Chrome()
     driver.get("https://www.baidu.com")
     driver.save_screenshot('button.png')
     element=driver.find_element_by_id("su")
     print (element.size)
    

    最后的执行结果如下图:


    image.png

    3、这里就用到了python中另外一个东西pillow(图像处理库)

    首先得安装这个pillow,在cmd里进行安装 pip install pillow就ok了

    #coding=utf-8
    from selenium import webdriver
    from PIL import Image
    driver=webdriver.Chrome()
    driver.get("https://www.baidu.com")
    driver.save_screenshot('button.png')
    element=driver.find_element_by_id("su")
    print (element.location)
    print (element.size)
    left=element.location['x']
    top=element.location['y']
    right=element.location["x"]+element.size['width']
    bottom=element.location['y']+element.size['height']
    im=Image.open('button.png')
    im=im.crop((left,top,right,bottom))
    im.save('button.png')
    
    image.png

    最后保存的butto.png如下图所示


    image.png

    中间出现了一个插曲 1 和2 这两个打开的都是chrome,然后最后一段代码写的时候却写成了Firefox,执行的结果显示的location中的y和x值和上边的不一致,最后才发现实打开的浏览器不一样(很是尴尬),认真很重要。

    相关文章

      网友评论

        本文标题:selenium中如何只截取某个元素的图

        本文链接:https://www.haomeiwen.com/subject/fglcixtx.html