繁体   English   中英

如何使用python3和selenium截取元素的截图

[英]How to take screenshot of element using python3 and selenium

我想截取元素的屏幕截图。 我尝试使用下面提到的代码:

ElementIs=driver.find_element_by_xpath(".//body/img")
ElementIs.screenshot('abc.jpg')

但有错误:

File "C:\Python34\lib\site-packages\selenium-2.47.1-y3.4.egg\selenium\webdriver\remote\webelement.py", line 448, in _execute   return self._parent.execute(command, params)
File "C:\Python34\lib\site-packages\selenium-2.47.1-y3.4.egg\selenium\webdriver\remote\webdriver.py", line 196, in execute self.error_handler.check_response(response)
File "C:\Python34\lib\site-packages\selenium-2.47.1-py3.4.egg\selenium\webdriver\remote\errorhandler.py", line 102, in check_responsevalue = 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)

几个问题:

  1. find_elements_by_xpath返回一个列表,您不能请求列表上的屏幕截图。 你的意思是find_element_by_xpath吗?
  2. 无论如何,除了 Microsoft Edge 之外,没有任何 WebDriver 真正实现基于元素的屏幕截图 你必须生成一个全窗口截图并裁剪它。

有关更多背景和解决方法,请参阅我之前对此主题的回答

使用 Firefox,您可以:

driver = webdriver.Firefox()
qr = driver.find_element_by_css_selector('.css_class')
qr.screenshot("abc.jpg")

您可以在 find_element_by_css_selector 中使用 class、id 或 tags。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM