zoukankan      html  css  js  c++  java
  • selenium+python自动化93-Chrome报错:Python is likely shutting down

    遇到问题

    报错信息:sys.meta_path is None, Python is likely shutting down

    1.我的环境:

    • python 3.6
    • selenium 2.53.6
    • chrome 65
    • chromedriver 2.33.50

    2.执行代码:

    # 作者:上海-悠悠
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
    driver.get("https://www.cnblogs.com/yoyoketang")
    
    driver.close()  # close这句报错了
    

    3.报错信息:sys.meta_path is None, Python is likely shutting down

    Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.chrome.service.Service object at 0x0000000001E69748>>
    Traceback (most recent call last):
      File "D:softpython3.6libsite-packagesseleniumwebdrivercommonservice.py", line 163, in __del__
      File "D:softpython3.6libsite-packagesseleniumwebdrivercommonservice.py", line 139, in stop
      File "D:softpython3.6libsite-packagesseleniumwebdrivercommonservice.py", line 110, in send_remote_shutdown_command
    ImportError: sys.meta_path is None, Python is likely shutting down
    

    原因分析

    1.遇到这个报错,首先对比了Firefox浏览器,火狐上是没有这个问题的。

    # 作者:上海-悠悠
    from selenium import webdriver
    
    driver = webdriver.Firefox()
    
    driver.get("https://www.cnblogs.com/yoyoketang")
    
    driver.close()  # close这句报错了
    

    2.然后用driver.quit()也不会报错

    # 作者:上海-悠悠
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
    driver.get("https://www.cnblogs.com/yoyoketang")
    
    driver.quit()  # quit退出进程不会报错
    

    3.经过对比分析:

    • selenium2+Firefox46以下版本是不需要驱动的;
    • driver.close()只是关闭当前的窗口(chromedriver并没有退出进程,如下图),driver.quit()这个才是完全退出了进程

    解决方案

    1.close和quit方法各有各的用途,一般在多窗口时候,需要关掉其中一个窗口就用close

    2.写完代码,最后最好要加上一个quit,让进程退出。如下,可以先close,最后quit。

    # 作者:上海-悠悠
    # 交流qq群:646645429
    
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
    driver.get("https://www.baidu.com")
    
    driver.close()  # close 这里没关掉进程
    driver.quit()
    
    
  • 相关阅读:
    死锁是什么?如何避免死锁?
    HTTP协议 (二) 基本认证
    HTTP协议
    Fiddler 教程
    Wireshark基本介绍和学习TCP三次握手
    洛谷.4512.[模板]多项式除法(NTT)
    洛谷.4238.[模板]多项式求逆(NTT)
    洛谷.3803.[模板]多项式乘法(NTT)
    UOJ.87.mx的仙人掌(圆方树 虚树)(未AC)
    BZOJ.3991.[SDOI2015]寻宝游戏(思路 set)
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/8668184.html
Copyright © 2011-2022 走看看