python把html页面生成图片_[Python] 怎么把HTML的报告转换为图片,利用无头浏览器...

How to convert HTML Report to picture format in Email? So that we can see the automation report also at home or on mobile phone anywhere.

We tried to use phantomJs to get the full-page screenshot of HTML, it doesn't work well on some computers, then we found that the newest Chrome doesn't support it anymore, and Chrome has use its Headless mode to replace phantomJs.

Version 1 : phantomJs

# -*- coding: utf-8 -*-

import time

import os

from selenium import webdriver

jenkinsJobName=os.getenv("JOB_NAME")

url="http://10.2.3.3/testAgent/AutoAnaylsisReport.html"

print url

save_fn="buildNumResult.PNG"

driver = webdriver.PhantomJS()

driver.maximize_window()

driver.get(url) # Load page

time.sleep(30)

driver.save_screenshot(save_fn)

driver.close()

time.sleep(5)

os.system("taskkill /F /IM phantomjs.exe")

Version 2: Chrome Headless

# -*- coding: utf-8 -*-

import time

import os

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

url="http://10.2.4.1/testAgent/BillingAnaylisisReport.html"

print url

save_fn="buildNumResult.PNG"

option = webdriver.ChromeOptions()

option.add_argument('--headless')

option.add_argument('--disable-gpu')

option.add_argument("--window-size=1280,1024")

option.add_argument("--hide-scrollbars")

driver = webdriver.Chrome(chrome_options=option)

driver.get(url)

print(driver.title)

scroll_width = driver.execute_script('return document.body.parentNode.scrollWidth')

scroll_height = driver.execute_script('return document.body.parentNode.scrollHeight')

driver.set_window_size(scroll_width, scroll_height)

driver.save_screenshot(save_fn)

driver.quit()

Version 3 , 为了把截图放在邮件里直接展示,需要把图片截小一点。然后在邮件内容的HTML中加上一行:${FILE,path="report.html"}

# -*- coding: utf-8 -*-

import time,os

from PIL import Image

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

time.sleep(10)

url="http://10.249.4.17/testRailAgent/BillingAnaylisisReport.html?jenkinsJobName=Billing_Office_Live&projectUATName=Billing_Office_UAT&type=1"

print url

save_fn="buildNumResult.PNG"

option = webdriver.ChromeOptions()

option.add_argument('--headless')

option.add_argument('--disable-gpu')

option.add_argument("--window-size=1280,1024")

option.add_argument("--hide-scrollbars")

driver = webdriver.Chrome(chrome_options=option)

driver.get(url)

time.sleep(30)

scroll_width = driver.execute_script('return document.body.parentNode.scrollWidth')

scroll_height = driver.execute_script('return document.body.parentNode.scrollHeight')

driver.set_window_size(scroll_width, scroll_height)

driver.save_screenshot(save_fn)

time.sleep(5)

driver.quit()

im = Image.open(save_fn)

w,h = im.size

imgCount = h/2000+1

size=h/imgCount

left = 0

shang = 0

index = 0

for i in range(imgCount):

i=i+1

shang += 1

a = size * left

b = size *(i-1)

c = w

d = size * i

region = im.crop((a, b, c, d))

region.save("report%s.png" %i)

fp = open("report.html","w+b") #打开一个文本文件

for i in range(1,imgCount+1):

fp.write('') #写入数据

fp.close() #关闭文件

将PPT文件内容转换为图片放在Email邮件正文中发送

通过Email推送统计报告.一般除了要求将PPT报告文件作为附件发给用户,同时希望将报告内容在邮件中直观展示. 一份统计报告中经常包含柱状图.饼图.好看的图表,这些信息要直接在Email中展示比较复杂 ...

20184302 2019-2020-2 《Python程序设计》实验四报告

20184302 2019-2020-2 实验四报告 课程: 班级: 1843 姓名: 李新锐 学号:184302 实验教师:王 ...

分享:Svg文件转换为图片(调用 Inkscape 命令行)

其实只是做了简单封装,可以方便进行批量转换. 获取Svg对象坐标的代码请看:根据svg节点对象类型和路径值转换坐标值, DrawingColor方法是进行颜色填充的. ///

MVC把随机产生的字符串转换为图片

原文:MVC把随机产生的字符串转换为图片 Insus.NET在这篇中http://www.cnblogs.com/insus/p/3 ...

【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】

iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...

C# CAD批量转换为图片

最近写了个工具,将指定目录下的CAD文件批量转换为图片格式. 首先需要添加对应的引用 : 在AutoCAD2008的环境下对应AutoCAD 2008 Type Library 和 AutoCAD/O ...

PHP将图片转base64编码以及base64图片转换为图片并保存代码

图片转base64编码 /*图片转换为 base64格式编码*/ $img = 'uploads/01.png'; $base64_img = base64EncodeImage($img); ech ...

php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现

php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现 function data_uri($contents, $mime) { $base64 = base64_encode($c ...

Jquery 网页转换为图片

/* html2canvas 0.5.0-alpha1 Copyright (c) 2015 Niklas von Her ...

随机推荐

ASP.NET Core 中文文档 第三章 原理(14)服务器

原文:Servers 作者:Steve Smith 翻译:谢炀(Kiler) 校对:许登洋(Seay).姚阿勇(Dr.Yao) ASP.NET Core 已完全从承载应用程序的 Web 服务器环境中分 ...

在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效。

当访问 https 内容的时候,有时候经常会看到证书错误(不在操作系统的证书信任链中?)的提示,在浏览器中我们可以忽略错误的证书,继续访问网页内容. 但是在 .NET 程序中,需要由代码来判断是否忽略 ...

wpf做的可扩展记事本

记得有个winform利用反射做的可扩展笔记本,闲来无事,便用wpf也搞了个可扩展记事本,可用接口动态扩展功能,较简单,以便参考: 目录结构如下: MainWindow.xaml为主功能界面,Func ...

rqnoj-105-核电站问题-dp

刚刚发现一个问题..原来这个oj叫rqnoj不是rnqoj... 简单的状态转换~~ #include #include #include ...

bash shell for循环1到100 .

前言 用bash shell写程序时,经常会用到for循环,特别是从1到100这种需求,这里记录几种shell中从1到100的循环方法   方法 类c语言 for ((i=1; i<=100;  ...

Team City的安装1

持续集成工具 Team City的安装 前两个月很大一部分精力投入在做部门的持续集成,从概念的了解和工具的选型,再到安装,部署,操作,到最后的真实项目持续集成应用的上线,写了一份手册,包括安装,配置, ...

mysql 表连接

1.子查询是指在另一个查询语句中的SELECT子句. 例句: SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); 其中,SELECT ...

将自己的代码托管到github上

这几天一直在做一个爬虫的小demo,代码基本写的差不多了,想着如何把他放在一个地方,如是乎注册了一个github账号,开始了自己的git之旅. 首先是下载git,这个我就不多说啦!到处都有推荐看看廖雪 ...

slf4j-logback 日志以json格式导入ELK

同事整理的,在此分享.logback,log4j2 等slf4j的日志实现都可以以json格式输出日志, 这里采用的是logback.当然也可以以文本行的格式输出,然后在logstash里通过grok ...

LeetCode(59):螺旋矩阵 II

Medium! 题目描述: 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值