现在,我用它来检测用户何时关闭浏览器:
while True:
try:
# do stuff
except WebDriverException:
print 'User closed the browser'
exit()
但我发现这是非常不可靠的,也是一个非常糟糕的解决方案,因为WebDriverException
捕获很多异常(如果不是全部),并且大多数异常不是由于用户关闭浏览器造成的。
我的问题是:如何检测用户何时关闭浏览器?
我建议使用:
>>> driver.get_log('driver')
[{'level': 'WARNING', 'message': 'Unable to evaluate script: disconnected: not connected to DevTools\n', 'timestamp': 1535095164185}]
因为每当用户关闭浏览器窗口时驱动程序都会记录此信息,这似乎是最Pythonic的解决方案。
所以你可以这样做:
DISCONNECTED_MSG = 'Unable to evaluate script: disconnected: not connected to DevTools\n'
while True:
if driver.get_log('driver')[-1]['message'] == DISCONNECTED_MSG:
print 'Browser window closed by user'
time.sleep(1)
如果您有兴趣,可以找到文档here https://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver.get_log.
我使用的是 chromedriver 2.41 和 Chrome 68。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)