Selenium執行cdp命令,driver.execute_cdp_cmd用法


Chrome自帶的開發者工具DevTools功能非常強大。有時候我們在使用Selenium操作瀏覽器時需要通過調用一下DevTools的方法來完成一些設置,如模擬移動設備,弱網模擬等等。
Selenium的WebDriver類中有一個execute_cdp_cmd(self, cmd, cmd_args)方法可以用來執行Chrome開發這個工具命令。

cdp即Chrome DevTools Protocal, Chrome開發者工具協議,API文檔可參考:https://chromedevtools.github.io/devtools-protocol/tot/Emulation

使用方法,示例:

import requests from selenium import webdriver from time import sleep import base64 driver = webdriver.Chrome() driver.get('https://www.hao123.com/') res = driver.execute_cdp_cmd('Page.captureScreenshot', {}) with open('hao123.png', 'wb') as f: img = base64.b64decode(res['data']) f.write(img) sleep(3) driver.quit() 

這個例子是調用cdp中Page類的截圖方法,支持png格式和jpeg格式,調用后返回的數據data字段中為圖片的base64編碼,將編碼解碼成二進制后可以保持為圖片。

很遺憾的是,雖然Chrome開發者工具前台命令菜單中有Capture full screenshot的命令,如下圖,但cdp的方法中無此方法,Selenium3后所有的瀏覽器都無法全屏截圖。

 
 
轉:https://www.cnblogs.com/superhin/p/11481910.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM