selenium无法截取网页元素

Lou*_*ise 1 python firefox selenium

在此输入图像描述

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

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

Mob*_*ers 6

你得到这个例外是因为如果没有一些第三方库或你自己的代码来处理这个问题,你就无法在selenium中截取一个元素的截图.请参阅此stackoverflow帖子

它使用名为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
Run Code Online (Sandbox Code Playgroud)