Línea de comando CMD Chrome para tomar automáticamente capturas de pantalla de páginas web a archivos y salir automáticamente del navegador después de que se complete la captura de pantalla

Tomando capturas de pantalla

Una captura Una captura de pantalla de la página A, el uso de la --screenshotbandera en:
Para captura de pantalla de la página, simplemente use los --screenshotparámetros para:

chrome --headless --disable-gpu --screenshot https://www.baidu.com/

# Size of a standard letterhead. 标准的信件比例
chrome --headless --disable-gpu --screenshot --window-size=1280,1696 https://www.baidu.com/

# Nexus 5x
chrome --headless --disable-gpu --screenshot --window-size=412,732 https://www.baidu.com/

Ejecutar con --screenshotgenerará un archivo con el nombre screenshot.pngen el directorio de trabajo actual. Si estás buscando capturas de pantalla de página completa, las cosas son un poco más complicadas. Hay una excelente publicación de blog de David Schnurr que te tiene cubierto. Consulta Cómo usar Chrome sin cabeza como un automatizado herramienta de captura de pantalla .
el uso de --screenshotparámetros generará un screenshot.pngarchivo llamado en el directorio actual (nota del editor: el navegador se cerrará automáticamente después de que se complete la captura de pantalla). Si necesita tomar una captura de pantalla de toda la página, debe agregar algo. Aquí hay una publicación de blog "Uso de Chrome sin interfaz como una herramienta automática de captura de pantalla" escrita por David Schnurr como referencia.


Nota del editor: Antes de enviar ese artículo para proporcionar un corte en la realización de las páginas de Selenium, haga un mapa largo, cambie un poco lo que pueda, antes de que el artículo acceda al navegador existente, no solo es necesario cambiar el modo de interfaz (sin cabeza) y cambiar Inicio un nuevo navegador ( chrome_optionsno configurado en el interior debugger_address), agregue uno después de que se complete la captura de pantalla de la página web, y el driver.quit()navegador se puede cerrar automáticamente.

from selenium import webdriver
from time import sleep
from base64 import b64decode
from sys import argv

# 改成启动新的浏览器,使用headless无界面浏览器模式
options = webdriver.ChromeOptions() 
# 增加无界面选项
chrome_options.add_argument('--headless') 
# 如果不加这个选项,有时定位会出现问题
chrome_options.add_argument('--disable-gpu') 
# 启动浏览器
driver = webdriver.Chrome(options=options)

# 访问页面,这里可以改成获取启动参数 argv[1]
driver.get("https://www.baidu.com")

# 取出页面的宽度和高度
page_width = driver.execute_script("return document.body.scrollWidth")
page_height = driver.execute_script("return document.body.scrollHeight")

# 直接开启设备模拟,不要再手动开devtools了,否则截图截的是devtools的界面!
driver.execute_cdp_cmd('Emulation.setDeviceMetricsOverride', {
    
    'mobile':False, 'width':page_width, 'height':page_height, 'deviceScaleFactor': 1})

# 执行截图
res = driver.execute_cdp_cmd('Page.captureScreenshot', {
    
     'fromSurface': True})

# 返回的base64内容写入PNG文件
with open('screenshot.png', 'wb') as f:
    img = b64decode(res['data'])
    f.write(img)

# 等待截图完成
sleep(15)

# 关闭设备模拟
driver.execute_cdp_cmd('Emulation.clearDeviceMetricsOverride', {
    
    })

# 关闭浏览器
driver.quit()

Supongo que te gusta

Origin blog.csdn.net/qq_35977139/article/details/112347666
Recomendado
Clasificación