最近碰到一個問題,需求是把做好的報告發(fā)到領(lǐng)導(dǎo)郵箱(只能發(fā)郵箱,不接受郵箱鏈接等方式),大家都知道outlook對js是不支持的,只支持最簡單的html樣式,最后選定的方法是截圖,但是報告可能很長啊,怎么能一次性全截下來呢。
通過Python seleniu就可操作瀏覽器全屏截圖
接下來直接上代碼
# -*- 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開啟的模式,headless就是無界面模式#一定要使用這個模式,不然截不了全頁面,只能截到你電腦的高度chrome_options = Options()chrome_options.add_argument(‘headless’)driver = webdriver.Chrome(chromedriver,chrome_options=chrome_options)#控制瀏覽器寫入并轉(zhuǎn)到鏈接driver.get(url)time.sleep(1)#接下來是全屏的關(guān)鍵,用js獲取頁面的寬高,如果有其他需要用js的部分也可以用這個方法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)
希望本文對你有所幫助~~如果對軟件測試、接口測試、自動化測試、性能測試、面試經(jīng)驗交流感興趣可以私聊我或關(guān)注公眾號“特斯汀軟件測試”。免費領(lǐng)取最新軟件測試大廠面試資料和Python自動化、接口、框架搭建學(xué)習(xí)資料!技術(shù)大牛解惑答疑,同行一起交流。