I'm trying to find the way of how to get screenshot of particular webelement with Selenium WebDriver
and I was happy to know that starting from v2.46.1 screenshot()
method is available and it should provide ability to resolve my issue... But I can't actually apply it as I get following trace:
>>>from selenium import webdriver
>>>driver = webdriver.Chrome()
>>>image_to_save = driver.find_element_by_xpath("//img[@alt='Some picture']")
>>>image_to_save.screenshot('C\\Users\\Me\\Desctop\\Image.png')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webelement.py",
line 405, in screenshot
png = self.screenshot_as_png
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webelement.py",
line 392, in screenshot_as_png
return base64.b64decode(self.screenshot_as_base64.encode('ascii'))
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webelement.py",
line 382, in screenshot_as_base64
return self._execute(Command.ELEMENT_SCREENSHOT)['value']
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webelement.py",
line 454, in _execute
return self._parent.execute(command, params)
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 201, in execute
self.error_handler.check_response(response)
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\errorhandler.py"
, line 102, in check_response
value = json.loads(value_json)
File "C:\Python34\lib\json\__init__.py", line 318, in loads
return _default_decoder.decode(s)
File "C:\Python34\lib\json\decoder.py", line 343, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python34\lib\json\decoder.py", line 361, in raw_decode
raise ValueError(errmsg("Expecting value", s, err.value)) from None
ValueError: Expecting value: line 1 column 1 (char 0)
Am I doing something wrong or this method wasn't implemented correctly?
Updated with full log
P.S. Windows 7, Selenium 2.48, Python 3.4.0