我可以使用Firefox.get_screenshot_as_file(‘2.png’)对整个页面进行屏幕截图,但是当我使用pass.screenshot(‘1.png’)对网络元素进行屏幕截图时,总是会引发以下异常:
selenium.common.exceptions.WebDriverException: Message: Unrecognized command: GET /session/284283fa-53fc-4b33-b329-e6e888dbdcb0/screenshot/{35834cf1-c9c7-4129-99b1-24f30c6b56e6}
之所以会出现此异常,是因为如果没有某些第三方库或您自己的代码来处理硒中的元素,就无法截取它的屏幕快照。
它使用称为PIL的库来执行此操作:
from selenium import webdriver from PIL import Image fox = webdriver.Firefox() fox.get('https://http://codingdict.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