yay*_*ayu 3 python selenium exception selenium-webdriver
所以我试图捕获Webdriver异常,并且不希望它的回溯污染我的日志.这是一些代码
from selenium.common.exceptions import TimeoutException, WebDriverException
try:
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, '.loading')))
except TimeoutException:
log.msg("Seneium Timeout: {}".format(response.url))
except WebDriverException as e:
log.msg("Selenium Exception: {0} Message: {1}".format("my message", str(e)))
finally:
driver.quit()
Run Code Online (Sandbox Code Playgroud)
但我仍然得到这些:
<full traceback here>
selenium.common.exceptions.WebDriverException: Message: Can not connect to GhostDriver
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
try/except
初始化WebDriver
实例时,异常会在块外部引发:
driver = webdriver.PhantomJS()
Run Code Online (Sandbox Code Playgroud)
仅供参考,这是从源代码开始PhantomJS
时GhostDriver
引用的:
def start(self):
"""
Starts PhantomJS with GhostDriver.
:Exceptions:
- WebDriverException : Raised either when it can't start the service
or when it can't connect to the service
"""
try:
self.process = subprocess.Popen(self.service_args, stdin=subprocess.PIPE,
close_fds=platform.system() != 'Windows',
stdout=self._log, stderr=self._log)
except Exception as e:
raise WebDriverException("Unable to start phantomjs with ghostdriver.", e)
count = 0
while not utils.is_connectable(self.port):
count += 1
time.sleep(1)
if count == 30:
raise WebDriverException("Can not connect to GhostDriver")
Run Code Online (Sandbox Code Playgroud)
而且,start()
被称为WebDriver
"构造函数(__init__()
方法).
换句话说,它启动服务,但无法连接到它.
归档时间: |
|
查看次数: |
2052 次 |
最近记录: |