现在,我将其用作检测用户何时关闭浏览器的一种方法:
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}]
因为驱动程序会在用户关闭浏览器窗口时记录下来,这似乎是最有效的解决方案。
因此,您可以执行以下操作:
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。
我正在使用chromedriver 2.41和Chrome 68。
关于python - 关闭浏览器时,Python Selenium Detect,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51685330/