- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python实现⽹页⾃动截图的⽰例讲解
背景介绍
最近在为部门编写⼀个⾃动化测试⼯具,⼯具涉及到⼀个功能,即将⾃动化测试⽣成的html报告截图,作为邮件正⽂,html⽂件上传到web服
务器以链接形式添加到邮件中,最后发送邮件。
任务难点
之前从未接触过页⾯⾃动截图相关的⽅⾯,因此如何⾃动进⾏页⾯截图成为本地调研⽅向。
⽅案思考
在刚接到这个任务时,并不认同⽬前的⽅案。曾经⼀度认为,将html报告的内容写⼊邮件正⽂,即可通过html的形式发送邮件了。经过尝试后
发现,邮件不⽀持带javascript的html。因此,选择了预览html并⾃动截图的⽅案。
编程语⾔
python 2.7
使⽤⽅案 :
selenium + phantomjs
⽅案介绍
实现⾃动预览html并截图有以下⼏个步骤:
1.浏览器打开html
2.对浏览器页⾯进⾏截图
3.将截图保存到指定位置
最初,笔者使⽤了这个实现⽅案:
(1).使⽤webbrowser库打开默认浏览器,显⽰url
(2).使⽤PIL.ImageGrab库的对屏幕进⾏进⾏截图
到此为⽌,笔者已经获得html的预览截图,⼀切似乎很顺利,但接下来
发现了以下⼏个问题:
(1).打开默认浏览器时,默认浏览器是什么,浏览器处于什么状态都不知晓。
(2).浏览器显⽰html,会有⼀个显⽰的打开浏览器,浏览器打开html的动作出现,如果⽤户此时产⽣了其他动作,必定会对之后的截图产⽣影
响。
(3).屏幕截图,将整个屏幕都进⾏截图,截图中除了html页⾯正⽂,同时也包含了浏览器等当前屏幕包含的所有元素,暴漏了⽤户隐私。
(4).如果页⾯较⼤,页⾯会产⽣上下翻页的效果,屏幕截图⽆法应对此种页⾯,截图看到的报告只有⼀部分。
基于上述问题,笔者放弃了这个看起来简单有效的⽅案。从⽽
对⽅案挖掘了⼀些深层需求:
(1).打开浏览器必须隐式调⽤,⽤户⽆法看到⼯具在做什么,从⽽不会通过误操作对⼯具产⽣影响。
(2).截图必须针对浏览器页⾯正⽂,保证⽆其他冗余信息,且截到页⾯全图根据这些需求,笔者经过⼀系列尝试终于发现了selenium +
phantomjs。
python selenium :是python对浏览器⾃动化测试框架selenium的扩展,selenium库⽀持了selenium所包含⼤部分功能。
phantomjs:是⼀个⽆界⾯的,可脚本编程的webkit浏览器,python selenium同样提供对phantomjs的⽀持。
接下来⼀切就很容易了:
(1).安装python selenium 库,推荐使⽤pip快速安装最新版本
(2).下载phantomjs.exe,将其添加到环境变量 path 中。⽅便起见可以直接放在python的安装⽬录根⽬录下
(3).编写测试代码
简单讲解⼀下代码:
fromselenium importwebdriver #从selenium库导⼊webdirver
brower=webdriver.PhantomJS() #使⽤webdirver.PhantomJS()⽅法新建⼀个phantomjs的对象,这⾥会使⽤到phantomjs.exe,环境变量path中找不到phantomjs.exe,则会报错
brower.get(url) #使⽤get()⽅法,打开指定页⾯。注意这⾥是phantomjs是⽆界⾯的,所以不会有任何页⾯显⽰
brower.maximize_window() #设置phantomjs浏览器全屏显⽰
brower.save_screenshot(picName) #使⽤save_screenshot将浏览器正⽂部分截图,即使正⽂本分⽆法⼀页显⽰完全,save_screenshot也可以完全截图
brower.close() #关闭phantomjs浏览器,不要忽略了这⼀步,否则你会在任务浏览器中发现许多phantomjs进程
执⾏了上述代码后 ,我们看⼀下截图效果吧 :
以上这篇Python 实现⽹页⾃动截图的⽰例讲解就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
您可能关注的文档
- 金属热处理设备安全操作规程.pdf
- 电子商务专业短学期安排.pdf
- 2021年许昌市主要经济指标运行情况.pdf
- 砂加气混凝土砌块和灰加气混凝土砌块的区别.pdf
- 最新舞蹈编导专业大学生职业生涯规划书(最新)5035.pdf
- 栀子花开中英文版歌词.pdf
- ALC蒸压轻质加气砼板运输及安装工程预算定额定额说明A.pdf
- 关于中学生学习态度的调查报告.pdf
- 数字图像处理技术在测定电子荷质比中的应用.pdf
- 《国际人才英语教程》担当时代重任:培养时代之才、沟通之才、智慧之才.pdf
- 2022新疆轻工职业技术学院招聘笔试真题及答案详解1套.docx
- 2022扬州中瑞酒店职业学院招聘笔试真题及参考答案详解1套.docx
- 2022新疆石河子职业技术学院招聘笔试真题及答案详解一套.docx
- 财务报告精读-揭秘投资决策的背后逻辑.pptx
- 骋飞新势力-全新XX摩托车发布会.pptx
- 失业保险政策解读-政策解读,权益保障.pptx
- 危险化学品企业“5.7 操作安全”解读与应用指南(雷泽佳编制-2025A1).pdf
- 危险化学品企业“5.6 设备完整性”解读与应用指南(雷泽佳编制-2025A1).pdf
- 掌握市场调研秘籍-实战解析市场调研全流程.pptx
- 法律职业发展导航-探索法律行业的多元路径.pptx
文档评论(0)