Python 如何使用Selenium webdriver screenshot()方法

Python 如何使用Selenium webdriver screenshot()方法,python,selenium-webdriver,screenshot,Python,Selenium Webdriver,Screenshot,我正在试图找到如何使用Selenium WebDriver获取特定webelement的屏幕截图的方法,我很高兴知道从v2.46.1开始可以使用屏幕截图方法,它应该能够解决我的问题。。。但我无法实际应用它,因为我得到以下跟踪: >>>from selenium import webdriver >>>driver = webdriver.Chrome() >>>image_to_save = driver.find_element_by_xp

我正在试图找到如何使用Selenium WebDriver获取特定webelement的屏幕截图的方法,我很高兴知道从v2.46.1开始可以使用屏幕截图方法,它应该能够解决我的问题。。。但我无法实际应用它,因为我得到以下跟踪:

>>>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)
是我做错了什么,还是这个方法没有正确实现

更新为完整日志

另请看Windows 7, 硒2.48,
Python 3.4.0

您所做的是完全错误的


您只需调用webdriver.browser.save_screenshotpath_即可保存屏幕截图,其中浏览器类似于Firefox、Chrome或Ie。它将获取当前页面的屏幕截图。您不能专注于某个元素并拍摄其屏幕截图。

请发布完整的回溯错误消息,以便清楚ValueError发生在哪一行。@unutbu,它是在Python命令行中编写的,因此根据该元素在最后一行中出现了问题。屏幕截图方法尚未对所有驱动程序实施-到目前为止,它只适用于木偶和边驱动。@unutbu,噢。。。那太糟糕了。感谢您提供的信息,我有代码可以拍摄特定web元素的屏幕截图,但我不懂python。我使用Java绑定。如果您可以导入匹配的库文件,您可以尝试吗?此外,我可以使用get_screenshot_as_base64将屏幕另存为简单的字符串变量,但目标更复杂…取决于您的需要。如果你需要图形,我会说使用webdriver.browser.save_screenshot~/some_path/some_screenshot.png,否则,就像你指出的,一个b64就有一个简单的字符串文件。这有助于你实现目标吗?没有。你的答案与我的问题不符,恕我直言,我的答案并不无关。正如我所提到的,这个功能是不可用的,你也不能像这里解释的那样截图