Cómo hacer una captura de pantalla de un WebElement especificado en Selenium usando Python

Quiero hacer una captura de pantalla de un elemento en Selenium, de acuerdo con el documento, cada WebElement tiene una función:

captura de pantalla (nombre de archivo)

Guarda una captura de pantalla del elemento actual en un archivo de imagen PNG. Devuelve False si hay algún IOError, de lo contrario devuelve True. Utilice rutas completas en su nombre de archivo.

Args: filename: la ruta completa en la que desea guardar su captura de pantalla. Esto debería terminar con una extensión .png

Uso: element.screenshot (‘/ Screenshots / foo.png’)

Sin embargo, cuando uso esta función en mi progtwig:

from selenium import webdriver from selenium.webdriver.common.keys import Keys from time import sleep url='http://www.google.com' browser = webdriver.Chrome() browser.get(url) content = browser.find_element_by_id('searchform') content.screenshot('/home/ding/Pictures/shot.png') 

Se levanta error de esta manera:

 Traceback (most recent call last): File "", line 11, in  content.screenshot('/home/ding/Pictures/shot.png') File "/home/ding/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/webelement.py", line 453, in screenshot png = self.screenshot_as_png File "/home/ding/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/webelement.py", line 435, in screenshot_as_png return base64.b64decode(self.screenshot_as_base64.encode('ascii')) File "/home/ding/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/webelement.py", line 425, in screenshot_as_base64 return self._execute(Command.ELEMENT_SCREENSHOT)['value'] File "/home/ding/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/webelement.py", line 501, in _execute return self._parent.execute(command, params) File "/home/ding/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 308, in execute self.error_handler.check_response(response) File "/home/ding/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 165, in check_response raise exception_class(value) WebDriverException: unknown command: session/efbca24571c5332230f4d032ae04787c/element/0.7487814861441955-1/screenshot 

¿Cómo puedo resolver esto y tomar una captura de pantalla de un elemento utilizando Selenium en Python?

 from selenium import webdriver from selenium.webdriver.common.keys import Keys from time import sleep url="http://www.google.com" browser = webdriver.Chrome("c:\chrome\chromedriver.exe") browser.get(url) browser.find_element_by_id('searchform') browser.save_screenshot("C://Demo//shot.png") 

Necesitas reemplazar la screenshot con el método save_screenshot . Asi que

En lugar de :

 content.screenshot('/home/ding/Pictures/shot.png') 

Utilizar :

 content.save_screenshot('/home/ding/Pictures/shot.png')