ImportError:sys.meta_path为None,Python可能正在关闭

时间:2017-01-05 08:17:08

标签: python-3.x selenium selenium-webdriver pycharm selenium-chromedriver

纽比在这里。请解释为什么会出现此问题以及如何解决此问题。

错误:

  

" C:\ Program Files(x86)\ Python36-32 \ python.exe" C:/Users/Vivek-Pc/PycharmProjects/tryOutSeries/searchTryout2.py   在以下情况中忽略了例外:>   Traceback(最近一次调用最后一次):   文件" C:\ Program Files(x86)\ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py",第173行, del   文件" C:\ Program Files(x86)\ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py",第149行,停止   文件" C:\ Program Files(x86)\ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py",第120行,在send_remote_shutdown_command中   ImportError:sys.meta_path为None,Python可能正在关闭   处理以退出代码0结束

使用的代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver_path = "c:\Program Files (x86)\Python36-32\Lib\site-packages\selenium\webdriver\chrome\chromedriver"
b_obj = webdriver.Chrome(driver_path)
b_obj.implicitly_wait(15)
b_obj.maximize_window()
b_obj.get('http://stackoverflow.com/')

search_box = b_obj.find_element_by_name('q')
search_box.clear()
search_box.send_keys("Selenium")
search_box.submit()
b_obj.close()

环境信息:

  

Windows,Selenium,Python,Chrome(chromedriver.exe)& PyCharm

3 个答案:

答案 0 :(得分:7)

我使用Python 3.6,Selenium 3.0.2和ChromeDriver 2.27(此时最新的一切)重现了同样的错误。

当Python selenium webdriver在显式关闭驱动程序时尝试stop the chromedriver service时,或者脚本执行结束时(并且__del__方法将被执行),似乎会出现问题。

将问题报告给Python / Selenium github问题跟踪器:

解决方法:

我发现使用driver.quit()代替driver.close()有助于解决问题。

答案 1 :(得分:0)

在进行CLI自动化项目时,我遇到了相同的问题。

要摆脱这一点,您必须关闭打开的对象,例如:

  1. 如果在Paramiko上工作,则必须关闭打开的处理程序 client.close() shell.close()
  2. 如果要进行文件操作,则   file_handler.close()
  3. 如果在套接字上工作,那么我们已经关闭了在其上创建的对象。

答案 2 :(得分:0)

您还可以给quit方法一些时间,以便在python退出之前完成执行。 这对我有用:

#right before quitting
driver.quit()
time.sleep(1)