【发布时间】:2018-11-26 17:51:59
【问题描述】:
我希望 selenium 在截屏之前等待。当我使用 time.sleep(1) 时,它给了我这个错误:
Traceback(最近一次调用最后一次): 文件“test.py”,第 12 行,在 driver.save_screenshot('page.png') 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/we bdriver.py”,第 1033 行,在 save_screenshot 中 返回 self.get_screenshot_as_file(文件名) 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/we bdriver.py”,第 1010 行,在 get_screenshot_as_file 中 png = self.get_screenshot_as_png() 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/we bdriver.py”,第 1042 行,在 get_screenshot_as_png 返回 base64.b64decode(self.get_screenshot_as_base64().encode('ascii')) 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/we bdriver.py”,第 1052 行,在 get_screenshot_as_base64 中 return self.execute(Command.SCREENSHOT)['value']
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/we bdriver.py”,第 312 行,在执行中 响应 = self.command_executor.execute(driver_command, params) 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/re mote_connection.py”,第 472 行,在执行中 return self._request(command_info[0], url, body=data) 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/re mote_connection.py”,第 496 行,在 _request 中 响应 = self._conn.getresponse() 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py”,第 1331 行,在 getresponse response.begin() 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py”,第 297 行,开始 版本、状态、原因 = self._read_status() _read_status 中的文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py”,第 258 行 line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socket.py”,第 586 行,在 readinto 返回 self._sock.recv_into(b) ConnectionResetError: [Errno 54] 对等方重置连接
这是我的代码:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support.ui import WebDriverWait
import os
import time
options = Options()
options.add_argument("--headless")
driver = webdriver.Firefox(firefox_options=options, executable_path =
'/usr/local/bin/geckodriver', log_path=os.devnull)
driver.get('https://google.com/')
time.sleep(5)
driver.save_screenshot('page.png')
driver.quit()
如何等待页面加载而不出现此错误?
我知道你可以等待一个元素加载我只想等待它没有任何条件。
(当然,在 google.com 上没有什么要加载的了
【问题讨论】:
-
错误不是由于睡眠,而是由于
save_screenshot()调用。
标签: python selenium selenium-webdriver