首页 > 解决方案 > 运行 selenium 时出现 NotADirectoryError

问题描述

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from bs4 import BeautifulSoup

my_username = "username"
my_password = "pass"

driver = webdriver.Firefox()
driver.get("http://www.twitch.tv/user/login")
elem_user = driver.find_element_by_id("login_user_login")
elem_passwd = driver.find_element_by_id("user[password]")
elem_user.send_keys(my_username)
elem_passwd.send_keys(my_password + Keys.RETURN)
time.sleep(5)

html = driver.page_source
soup = BeautifulSoup(html)
logginTag = soup.find("a", {"id" : "user_display_name"})
print(logginTag)
driver.close()

错误驱动程序 = webdriver.Firefox() 文件“/Users/grey/.pyenv/versions/3.7.3/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py”,第 164 行,在初始化 self.service.start() 文件“/Users/grey/.pyenv/versions/3.7.3/lib/python3.7/site-packages/selenium/webdriver/common/service.py”,第 76 行,开始stdin=PIPE)文件“/Users/grey/.pyenv/versions/3.7.3/lib/python3.7/subprocess.py”,第 775 行,在init restore_signals,start_new_session)文件“/Users/grey/.pyenv/版本/3.7.3/lib/python3.7/subprocess.py",第 1522 行,在 _execute_child raise child_exception_type(errno_num, err_msg, err_filename) NotADirectoryError: [Errno 20] Not a directory: 'geckodriver'

标签: pythonseleniumselenium-webdriverbeautifulsoup

解决方案


基于

NotADirectoryError: [Errno 20] Not a directory: 'geckodriver'

建议:

  • 确保您已成功安装 Fixefox,通过在控制台中启动 firefox 来验证它
  • 从https://github.com/mozilla/geckodriver/releases下载 geckodriver 二进制文件,注意 geckodriver 必须与 Firefox 版本匹配
  • 设置路径。演示 driver = webdriver.Firefox(executable_path=r'/User/xxx/geckodriver')

推荐阅读