首页 文章

在Python中,如何检查Selenium WebDriver是否已退出?

提问于
浏览
0

以下是示例代码:

from selenium import webdriver

driver = webdriver.Firefox()

(由于某种原因,窗口关闭)

driver.quit()

回溯(最近一次调用最后一次):文件“”,第1行,在文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py”,第183行,退出RemoteWebDriver.quit(self)文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py”,第592行,退出self.execute(Command.QUIT)文件“/ usr / local / lib / python2.7 / dist-packages / selenium / webdriver / remote / webdriver.py“,第297行,执行self.error_handler.check_response(响应)文件”/usr/local/lib/python2.7 /dist-packages/selenium/webdriver/remote/errorhandler.py“,第194行,在check_response中引发exception_class(消息,屏幕,堆栈跟踪)selenium.common.exceptions.WebDriverException:消息:尝试运行命令而不 Build 连接

Is there some way to check if an instance of webdriver is active?

1 回答

  • 2

    您可以使用类似于使用psutil的东西

    from selenium import webdriver
    import psutil
    
    driver = webdriver.Firefox()
    
    driver.get("http://tarunlalwani.com")
    
    driver_process = psutil.Process(driver.service.process.pid)
    
    if driver_process.is_running():
        print ("driver is running")
    
        firefox_process = driver_process.children()
        if firefox_process:
            firefox_process = firefox_process[0]
    
            if firefox_process.is_running():
                print("Firefox is still running, we can quit")
                driver.quit()
            else:
                print("Firefox is dead, can't quit. Let's kill the driver")
                firefox_process.kill()
        else:
            print("driver has died")
    

相关问题