提问人:Alex Bruce 提问时间:3/15/2017 最后编辑:Jacques GaudinAlex Bruce 更新时间:9/12/2017 访问量:10182
Selenium Python element.screenshot() 不起作用
selenium python element.screenshot() not working
问:
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:错误:angle_platform_impl.cc(33)]角度 Display::initialize err 或 5:需要 DXGI 1.2 才能呈现给 HWND 由另一个进程拥有。 [0315/220804.111:错误:gl_surface_egl.cc(646)] egl初始化 D3D11 失败,出现 E rror EGL_NOT_INITIALIZED,正在尝试下一个显示类型 回溯(最近一次调用最后一次):文件 “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 返回 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, 在执行中 self.error_handler.check_response(response) 文件“C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py” ,第 164 行,check_response raise exception_class(value) selenium.common.exceptions.WebDriverException: 消息: 未知 命令:会话 /4a58c13f918aa319b2df6ef70ac2ca51/element/0.4724184220629968-1/截图
答:
看起来你不能单独用硒来截取特定元素。例如,请参阅此处:如何使用 python3 和 selenium 截取元素的屏幕截图。
有这样的解决方法:如何在python中使用Selenium WebDriver截取部分屏幕截图?
您还可以截取页面的屏幕截图并进行裁剪。在这种情况下,这些工作:
browser.get_screenshot_as_file('/example/file/path.png')
或
browser.save_screenshot('/example/file/path.png')
评论
Edge