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:\soft\python3.6\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
  File "D:\soft\python3.6\lib\site-packages\selenium\webdriver\common\service.py", line 139, in stop
  File "D:\soft\python3.6\lib\site-packages\selenium\webdriver\common\service.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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM