欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 實(shí)現(xiàn)網(wǎng)頁自動(dòng)截圖的示例講解

 更新時(shí)間:2018年05月17日 14:43:38   作者:itest_2016  
今天小編就為大家分享一篇Python 實(shí)現(xiàn)網(wǎng)頁自動(dòng)截圖的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

背景介紹

最近在為部門編寫一個(gè)自動(dòng)化測試工具,工具涉及到一個(gè)功能,即 將自動(dòng)化測試生成的html報(bào)告截圖,作為郵件正文,html文件上傳到web服務(wù)器以鏈接形式添加到郵件中,最后發(fā)送郵件。

任務(wù)難點(diǎn)

之前從未接觸過頁面自動(dòng)截圖相關(guān)的方面,因此如何自動(dòng)進(jìn)行頁面截圖成為本地調(diào)研方向。

方案思考

在剛接到這個(gè)任務(wù)時(shí),并不認(rèn)同目前的方案。曾經(jīng)一度認(rèn)為,將html報(bào)告的內(nèi)容寫入郵件正文,即可通過html的形式發(fā)送郵件了。經(jīng)過嘗試后發(fā)現(xiàn),郵件不支持帶javascript的html。因此,選擇了預(yù)覽html并自動(dòng)截圖的方案。

編程語言

python 2.7

使用方案 :

selenium + phantomjs

方案介紹

實(shí)現(xiàn)自動(dòng)預(yù)覽html并截圖有以下幾個(gè)步驟:

1. 瀏覽器打開html

2. 對(duì)瀏覽器頁面進(jìn)行截圖

3. 將截圖保存到指定位置

最初,筆者使用了這個(gè)實(shí)現(xiàn)方案:

(1).使用webbrowser 庫打開默認(rèn)瀏覽器,顯示url

(2).使用PIL.ImageGrab庫的對(duì)屏幕進(jìn)行進(jìn)行截圖

到此為止,筆者已經(jīng)獲得html的預(yù)覽截圖,一切似乎很順利,但接下來

發(fā)現(xiàn)了以下幾個(gè)問題:

(1).打開默認(rèn)瀏覽器時(shí),默認(rèn)瀏覽器是什么,瀏覽器處于什么狀態(tài)都不知曉。

(2).瀏覽器顯示html,會(huì)有一個(gè)顯示的打開瀏覽器,瀏覽器打開html的動(dòng)作出現(xiàn),如果用戶此時(shí)產(chǎn)生了其他動(dòng)作,必定會(huì)對(duì)之后的截圖產(chǎn)生影響。

(3).屏幕截圖,將整個(gè)屏幕都進(jìn)行截圖,截圖中除了html頁面正文,同時(shí)也包含了瀏覽器等當(dāng)前屏幕包含的所有元素,暴漏了用戶隱私。

(4).如果頁面較大,頁面會(huì)產(chǎn)生上下翻頁的效果,屏幕截圖無法應(yīng)對(duì)此種頁面,截圖看到的報(bào)告只有一部分。

基于上述問題,筆者放棄了這個(gè)看起來簡單有效的方案。從而

對(duì)方案挖掘了一些深層需求:

(1).打開瀏覽器必須隱式調(diào)用,用戶無法看到工具在做什么,從而不會(huì)通過誤操作對(duì)工具產(chǎn)生影響。

(2).截圖必須針對(duì)瀏覽器頁面正文 ,保證無其他冗余信息,且截到頁面全圖根據(jù)這些需求,筆者經(jīng)過一系列嘗試終于發(fā)現(xiàn)了selenium + phantomjs。

python selenium : 是python對(duì)瀏覽器自動(dòng)化測試框架selenium的擴(kuò)展,selenium庫支持了selenium所包含大部分功能。

phantomjs : 是一個(gè)無界面的,可腳本編程的webkit瀏覽器,python selenium同樣提供對(duì)phantomjs的支持。

接下來一切就很容易了:

(1).安裝python selenium 庫,推薦使用pip快速安裝最新版本

(2).下載phantomjs.exe,將其添加到環(huán)境變量 path 中 。方便起見可以直接放在python的安裝目錄根目錄下

(3).編寫測試代碼

簡單講解一下代碼:

fromselenium importwebdriver     #從selenium庫導(dǎo)入webdirver

brower=webdriver.PhantomJS()    #使用webdirver.PhantomJS()方法新建一個(gè)phantomjs的對(duì)象,這里會(huì)使用到phantomjs.exe,環(huán)境變量path中找不到phantomjs.exe,則會(huì)報(bào)錯(cuò)

brower.get(url)           #使用get()方法,打開指定頁面。注意這里是phantomjs是無界面的,所以不會(huì)有任何頁面顯示

brower.maximize_window()      #設(shè)置phantomjs瀏覽器全屏顯示

brower.save_screenshot(picName)   #使用save_screenshot將瀏覽器正文部分截圖,即使正文本分無法一頁顯示完全,save_screenshot也可以完全截圖

brower.close()           #關(guān)閉phantomjs瀏覽器,不要忽略了這一步,否則你會(huì)在任務(wù)瀏覽器中發(fā)現(xiàn)許多phantomjs進(jìn)程

執(zhí)行了上述代碼后,我們看一下截圖效果吧:

以上這篇Python 實(shí)現(xiàn)網(wǎng)頁自動(dòng)截圖的示例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文搞定Scrapy和Selenium整合使用

    一文搞定Scrapy和Selenium整合使用

    Scrapy和Selenium都是常用的Python爬蟲框架,下面這篇文章主要給大家介紹了關(guān)于如何通過一文搞定Scrapy和Selenium整合使用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • python中如何利用matplotlib畫多個(gè)并列的柱狀圖

    python中如何利用matplotlib畫多個(gè)并列的柱狀圖

    python是一個(gè)很有趣的語言,可以在命令行窗口運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于python中如何利用matplotlib畫多個(gè)并列的柱狀圖的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Python之打印日志庫(logging)

    Python之打印日志庫(logging)

    這篇文章主要介紹了Python之打印日志庫(logging),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 用Python爬蟲破解滑動(dòng)驗(yàn)證碼的案例解析

    用Python爬蟲破解滑動(dòng)驗(yàn)證碼的案例解析

    今天分享個(gè)如何簡單處理滑動(dòng)圖片的驗(yàn)證碼的案例,主要是使用Python爬蟲破解滑動(dòng)驗(yàn)證碼的相關(guān)實(shí)現(xiàn)代碼,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 最新評(píng)論