2017-03-15 2 views
4
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() 

zu arbeiten, wenn ich oben Code ausführen, ich die Fehler bekam, meine Python-Version ist 2.7.13, ist Selen 3,1Selen Python element.screenshot() nicht

code error

[0315/220804.111:ERROR:angle_platform_impl.cc(33)] ANGLE Display::initialize err or 5: DXGI 1.2 required to present to HWNDs owned by another process. [0315/220804.111:ERROR:gl_surface_egl.cc(646)] eglInitialize D3D11 failed with e rror EGL_NOT_INITIALIZED, trying next display type Traceback (most recent call last): File "C:\Users\Administrator\Desktop\test.py", line 5, in browser.find_element_by_id('su').screenshot('E:/test.png') File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 443, in screenshot png = self.screenshot_as_png File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 430, in screenshot_as_png return base64.b64decode(self.screenshot_as_base64.encode('ascii')) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 420, in screenshot_as_base64 return self._execute(Command.ELEMENT_SCREENSHOT)['value'] File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 491, in _execute return self._parent.execute(command, params) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", l ine 238, in execute self.error_handler.check_response(response) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py" , line 164, in check_response raise exception_class(value) selenium.common.exceptions.WebDriverException: Message: unknown command: session /4a58c13f918aa319b2df6ef70ac2ca51/element/0.4724184220629968-1/screenshot

+0

Diese Methode, wie ich weiß, arbeitet derzeit mit 'Edge' nur – Andersson

Antwort

2

Es sieht nicht so aus, als könnten Sie ein bestimmtes Element mit Selen allein scannen. Siehe hier zum Beispiel: How to take screenshot of element using python3 and selenium.

Es gibt Problemumgehungen wie diese: How to take partial screenshot with Selenium WebDriver in python?.

Sie können auch einen Screenshot der Seite erstellen und zuschneiden. In diesem Fall diese Arbeit:

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

oder

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

Was http://selenium-python.readthedocs.io/api. html # selen.webdriver.remote.webelement.WebElement.screenshot? – GiriB

+0

Hat das für Sie funktioniert? Ich habe element.screenshot (Datei) einige Male ausprobiert und es hat nie funktioniert. Das hat auch das Original-Poster versucht. –

+1

Es scheint, dass es noch nicht implementiert wurde. Sehen Sie sich [this] an (https://github.com/seleniumhq/selenium/issues/912). – GiriB