最近碰到一個(gè)問(wèn)題,需求是把做好的報(bào)告發(fā)到領(lǐng)導(dǎo)郵箱(只能發(fā)郵箱,不接受郵箱鏈接等方式),大家都知道outlook對(duì)js是不支持的,只支持最簡(jiǎn)單的html樣式,最后選定的方法是截圖,但是報(bào)告可能很長(zhǎng)啊,怎么能一次性全截下來(lái)呢。
通過(guò)Python seleniu就可操作瀏覽器全屏截圖
接下來(lái)直接上代碼
# -*- coding: utf-8 -*-from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsimport osimport timedef get_image(url, pic_name):#chromedriver的路徑chromedriver = r”C:UsersameAppDataLocalGoogleChromeApplicationchromedriver.exe”os.environ[“webdriver.chrome.driver”] = chromedriver#設(shè)置chrome開(kāi)啟的模式,headless就是無(wú)界面模式#一定要使用這個(gè)模式,不然截不了全頁(yè)面,只能截到你電腦的高度chrome_options = Options()chrome_options.add_argument(‘headless’)driver = webdriver.Chrome(chromedriver,chrome_options=chrome_options)#控制瀏覽器寫(xiě)入并轉(zhuǎn)到鏈接driver.get(url)time.sleep(1)#接下來(lái)是全屏的關(guān)鍵,用js獲取頁(yè)面的寬高,如果有其他需要用js的部分也可以用這個(gè)方法width = driver.execute_script(“return document.documentElement.scrollWidth”)height = driver.execute_script(“return document.documentElement.scrollHeight”)print(width,height)#將瀏覽器的寬高設(shè)置成剛剛獲取的寬高driver.set_window_size(width, height)time.sleep(1)#截圖并關(guān)掉瀏覽器driver.save_screenshot(pic_name)driver.close()#你輸入的參數(shù)url = ‘https://movie.douban.com/top250’pic_name = r’D:image.png’get_image(url, pic_name)
希望本文對(duì)你有所幫助~~如果對(duì)軟件測(cè)試、接口測(cè)試、自動(dòng)化測(cè)試、性能測(cè)試、面試經(jīng)驗(yàn)交流感興趣可以私聊我或關(guān)注公眾號(hào)“特斯汀軟件測(cè)試”。免費(fèi)領(lǐng)取最新軟件測(cè)試大廠面試資料和Python自動(dòng)化、接口、框架搭建學(xué)習(xí)資料!技術(shù)大牛解惑答疑,同行一起交流。