8
 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

代码错误

[0315/220804.111:ERROR:angle_platform_impl.cc(33)] ANGLE Display::initialize err or 5: DXGI 1.2 需要呈现给另一个进程拥有的 HWND。[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:

4

1 回答 1

5

看起来您不能仅使用硒来截取特定元素。例如,请参见此处:如何使用 python3 和 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')
于 2017-03-15T15:01:39.533 回答