Skip to main content
 首页 » 编程设计

python之selenium 无法截屏网页元素

2025年05月04日9虾米姐

我可以使用 Firefox.get_screenshot_as_file('2.png') 截取整个页面,但是当我使用 passage.screenshot('1.png') 截取 Web 元素时,它总是引发此异常:

selenium.common.exceptions.WebDriverException: Message: Unrecognized command: GET /session/284283fa-53fc-4b33-b329-e6e888dbdcb0/screenshot/{35834cf1-c9c7-4129-99b1-24f30c6b56e6} 

请您参考如下方法:

你得到这个异常是因为你不能在没有一些第三方库或你自己的代码来处理这个的情况下只截取 selenium 中的一个元素。参见 This stackoverflow post

它使用名为 PIL 的库来执行此操作:

from selenium import webdriver 
from PIL import Image 
 
fox = webdriver.Firefox() 
fox.get('https://stackoverflow.com/') 
 
# now that we have the preliminary stuff out of the way time to get that image :D 
element = fox.find_element_by_id('hlogo') # find part of the page you want image of 
location = element.location 
size = element.size 
fox.save_screenshot('screenshot.png') # saves screenshot of entire page 
fox.quit() 
 
im = Image.open('screenshot.png') # uses PIL library to open image in memory 
 
left = location['x'] 
top = location['y'] 
right = location['x'] + size['width'] 
bottom = location['y'] + size['height'] 
 
 
im = im.crop((left, top, right, bottom)) # defines crop points 
im.save('screenshot.png') # saves new cropped image