【问题标题】:selenium python element.screenshot() not working硒python element.screenshot()不起作用
【发布时间】:2017-08-06 08:23:16
【问题描述】:
 from selenium import webdriver

 browser = webdriver.Chrome()
 browser.get("http://www.baidu.com")
 browser.find_element_by_id('su').screenshot('E:/test.png')
 browser.quit()

当我运行上面的代码时,我得到了错误,我的 python 版本是 2.7.13,selenium 是 3.1

code error

[0315/220804.111:ERROR:angle_platform_impl.cc(33)] 角度 Display::initialize err or 5: DXGI 1.2 required to present to HWNDs 由另一个进程拥有。 [0315/220804.111:ERROR:gl_surface_egl.cc(646)] eglInitialize D3D11 错误 EGL_NOT_INITIALIZED 失败,尝试下一个显示类型 Traceback(最近一次通话最后一次):文件 “C:\Users\Administrator\Desktop\test.py”,第 5 行,在 browser.find_element_by_id('su').screenshot('E:/test.png') 文件 "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", 第 443 行,在屏幕截图中 png = self.screenshot_as_png 文件 "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", 第 430 行,在 screenshot_as_png 返回 base64.b64decode(self.screenshot_as_base64.encode('ascii')) 文件 "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", 第 420 行,在 screenshot_as_base64 中 return self._execute(Command.ELEMENT_SCREENSHOT)['value'] 文件 "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", 第 491 行,在 _execute return self._parent.execute(command, params) 文件 "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", 第 238 行,在执行中 self.error_handler.check_response(response) 文件“C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py” ,第 164 行,在 check_response 中 引发异常类(值)selenium.common.exceptions.WebDriverException:消息:未知 命令:会话 /4a58c13f918aa319b2df6ef70ac2ca51/element/0.4724184220629968-1/截图

【问题讨论】:

  • 据我所知,这种方法目前仅适用于Edge

标签: python selenium screenshot chrome-web-driver


【解决方案1】:

看起来您不能仅使用硒来截取特定元素。请参见此处,例如:How to take screenshot of element using python3 and selenium

有如下解决方法:How to take partial screenshot with Selenium WebDriver in python?

您还可以截取页面并进行裁剪。在这种情况下,这些工作:

browser.get_screenshot_as_file('/example/file/path.png')

browser.save_screenshot('/example/file/path.png')

【讨论】:

  • 这对你有用吗?我已经尝试过 element.screenshot(file) 几次,但它从未奏效。这也是原海报所尝试的。
  • 好像还没有实现。看看this
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 2016-08-31
  • 1970-01-01
  • 2011-02-02
  • 2017-11-14
  • 1970-01-01
  • 2018-08-02
相关资源
最近更新 更多