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()
    
    
  • 相关阅读:
    线程中消费者生产者的实例代码(synchronized关键字)
    ThreadLocal管理Connection
    ThreadLocal的练习代码
    JDK中线程组ThreadGroup
    创建线程的三种方式
    ES练习代码
    window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
    ES配置文件中文版
    springmvc工作原理
    IE不兼容document.getElementsByClassName
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/8668184.html
Copyright © 2011-2022 走看看