zoukankan      html  css  js  c++  java
  • selenium网页截图和截图定位(无界面)phantomjs

    phantomjs是一款软件,需要重新安装。

    参考:

    https://blog.csdn.net/liyahui_3163/article/details/79064108

    案例代码:

    from selenium import webdriver
    import time
    from PIL import Image
    
    driver = webdriver.PhantomJS(r"D:zzlianchengphantomjs-2.1.1-windowsinphantomjs.exe")
    driver.get('https://www.baidu.com/')
    time.sleep(3)
    
    # 演示一:全网页截图
    # driver.save_screenshot('screenshot.png')
    # driver.quit()
    
    # 演示二:定位区块截图
    driver.save_screenshot(r'photo.png')  # 一次截图:形成全图
    baidu = driver.find_element_by_id('su')  # 截图按钮百度一下
    # baidu = driver.find_element_by_xpath("//div[@id='lg']/img[@class='index-logo-src']") #截图百度logo图片
    # print(baidu)
    left = baidu.location['x']  # 区块截图左上角在网页中的x坐标
    top = baidu.location['y']  # 区块截图左上角在网页中的y坐标
    right = left + baidu.size['width']  # 区块截图右下角在网页中的x坐标
    bottom = top + baidu.size['height']  # 区块截图右下角在网页中的y坐标
    # print({"left": left, "top": top, "right": right, "bottom ": bottom})
    # print("baidu.size['width']:%s" % baidu.size['width'])
    # print("baidu.size['height']:%s" % baidu.size['height'])
    picture = Image.open(r'photo.png')
    picture = picture.crop((left, top, right, bottom))  # 二次截图:形成区块截图
    picture.save(r'photo2.png')
    driver.quit()
    

      

    延伸:

    phantomjs出bug的解决方法:(截图找bug)

    driver = webdriver.PhantomJS()
    driver.set_window_size(1920,1080)
    try:
        driver.get('http://whatsmyuseragent.com/')
    
    except Exception,e:
        driver.save_screenshot('screenshot.png')
    
    driver.close()
    

      

  • 相关阅读:
    CPT104-labs
    Java-数据结构-ArrayList
    INT104-lab13[Parzen Window Method][此方法无数据集划分]
    INT104-lab12 [KNN Algorithm][lambda表达式]
    INT104-lab11 [聚类] [iris数据集] [K-means Algorithm]
    Nginx配置https兼容http
    JS获取整个网页html代码
    nginx重启生效conf文件的修改
    WampServer
    在win10系统中,开启hyper-v要满足下列条件
  • 原文地址:https://www.cnblogs.com/andy9468/p/10916729.html
Copyright © 2011-2022 走看看