无法使用Selenium和Python截取简单网页的截图

问题描述 投票:0回答:1

我是第一次使用 Selenium。 我必须截取一个简单网页的屏幕截图,但即使我已经设置了高度,它仍然显示下面的错误。

selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Cannot take screenshot with 0 height."}   (Session info: chrome=130.0.6723.58)

我的

main.py
写成如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-gpu')


driver = webdriver.Chrome(options=chrome_options)
url = 'https://www.google.com'

driver.get(url)
desired_width = 1920
desired_height = 1080

page_body = driver.find_element(By.TAG_NAME,"body")
time.sleep(20)
page_body.screenshot("page_screenshot.png")

driver.quit()

我尝试添加

# chrome_options.add_argument("--window-size=1920,1080")

我还尝试将我的

desired_height
var 设置为
driver.execute_script("return Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.client.Height,document.documentElement.scrollHeight,document.documentElement.offsetHeight);")

我在这里查找了其他文章,发现有人提出了类似的问题,但网络驱动程序试图获取的网页的验证码与我的不一样。我实际上只需要截取一个简单的 html 网页(假设像 google.com)的屏幕截图,网页上没有显示任何验证码或奇特的安全内容。

python docker selenium-webdriver selenium-chromedriver screenshot
1个回答
0
投票

试试这个

driver.set_window_size(1920, 1080) 

并从驱动程序中截取屏幕截图

driver.save_screenshot("file_name.png")
© www.soinside.com 2019 - 2024. All rights reserved.