Ale*_*uce 6 python selenium screenshot chrome-web-driver
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()
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,我得到了错误,我的python版本是2.7.13,selenium是3.1
[0315/220804.111:错误:angle_platform_impl.cc(33)] ANGLE显示:: initialize err或5:DXGI 1.2需要呈现给另一个进程拥有的HWND.[0315/220804.111:错误:gl_surface_egl.cc(646)] eglInitialize D3D11失败并出现EGL_NOT_INITIALIZED,尝试下一个显示类型Traceback(最近一次调用最后一次):文件"C:\ Users\Administrator\Desktop\test.py",第5行,在browser.find_element_by_id('su').截图('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中返回self._execute(Command.ELEMENT_SCREENSHOT)['value']文件"C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py",第491行,在_execute中返回self._parent.execute(command,params)文件"C:\ Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py",l ine 238,在exe中 可爱的self.error_handler.check_response(响应)文件"C:\ Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py",第164行,在check_response中引发exception_class(value)selenium.common.exceptions.WebDriverException :消息:未知命令:session /4a58c13f918aa319b2df6ef70ac2ca51/element/0.4724184220629968-1/screenshot
小智 5
看起来您无法单独使用 selenium 截取特定元素。例如,请参见此处:如何使用 python3 和 selenium 截取元素的屏幕截图。
有如下解决方法:如何在 python 中使用 Selenium WebDriver 截取部分屏幕截图?.
您还可以截取页面的屏幕截图并进行裁剪。在这种情况下,这些工作:
browser.get_screenshot_as_file('/example/file/path.png')
Run Code Online (Sandbox Code Playgroud)
或者
browser.save_screenshot('/example/file/path.png')
Run Code Online (Sandbox Code Playgroud)