【问题标题】:seleniumbase geckodriver NotADirectoryError:seleniumbase geckodriver NotADirectoryError:
【发布时间】:2020-06-26 05:22:19
【问题描述】:

我正在尝试让 seleniumbase geckodriver (firefox) 工作,它似乎告诉我我的驱动程序文件是一个目录

E   NotADirectoryError: [Errno 20] Not a directory: '/usr/local/lib/python3.8/dist-packages/seleniumbase/drivers/geckodriver'
====================================================== short test summary info =======================================================
ERROR seleniumtest2.py - NotADirectoryError: [Errno 20] Not a directory: '/usr/local/lib/python3.8/dist-packages/seleniumbase/drive...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
========================================================== 1 error in 0.19s ==========================================================

我试着只给它目录,它告诉我它需要这个文件。

如何让 geckodriver 在 seleniumbase 中工作?

代码:

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


driver = webdriver.Firefox('/usr/local/lib/python3.8/dist-packages/seleniumbase/drivers/geckodriver')
#driver = webdriver.Firefox('/usr/bin/geckodriver')
driver.get("https://www.python.org")
print(driver.title)
search_bar = driver.find_element_by_name("q")
search_bar.clear()
search_bar.send_keys("getting started with python")
search_bar.send_keys(Keys.RETURN)
print(driver.current_url)
driver.close()

安装方法:

seleniumbase install geckodriver

apt install firefox-geckodriver

同样的错误,两个驱动文件。

更新:

我的两个司机位置

root@Inspiron:# ls -l /usr/bin/geckodriver 
-rwxr-xr-x 1 root root 3476048 Jun  3 10:17 /usr/bin/geckodriver



root@Inspiron:# ls -l /usr/local/lib/python3.8/dist-packages/seleniumbase/drivers/geckodriver
-rwxr-xr-x 1 user user 7008696 Oct 12  2019 /usr/local/lib/python3.8/dist-packages/seleniumbase/drivers/geckodriver

【问题讨论】:

  • 您尝试将geckodriver 文件放在python3.8 库之外?喜欢/usr/local/bin/geckodriver
  • @frianH 是的,我从两个不同的包管理器安装了 2 个驱动程序文件,第二个是代码中的注释行。我可以在两者之间来回切换并且都产生相同的错误,只是特定于文件位置/路径

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


【解决方案1】:

尝试使用您的驱动器名称作为路径,为我工作

driver=webdriver.Firefox('C:/usr/local/lib/python3.8/distpackages/seleniumbase/drivers/geckodriver')

【讨论】:

  • 我在帖子中指出了我的 2 个驱动程序文件位置,并且我都使用了。
  • @brad 是的,但是您没有使用 c:/ 目录来调用它们。 Selenium 不知道在哪里搜索路径
  • 我正在使用 Linux。没有 c: 我确实两次都使用了完整路径。
  • 啊现在我明白了,也许看看this
  • 将 executable_path= 添加到 driver = webdriver.Chrome(executable_path='/usr/bin/geckodriver'),让它工作。
猜你喜欢
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 2021-04-09
  • 2018-02-09
  • 1970-01-01
  • 2019-03-28
相关资源
最近更新 更多