如何在 Windows 10 上为 Firefox 设置 Python 3 Selenium/Geckodriver?

2024-02-13

看到很多人都遇到过这样的问题,但在我所有的搜索中,我看到了很多我不理解的相互矛盾和令人困惑的信息——这有点超出了我的新手深度。

我在 PyCharm 中安装了 Selenium,并尝试运行《Automate The Boring Stuff with Python》一书中的代码:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://inventwithpython.com')
linkElem = browser.find_element_by_link_text('Read It Online')
type(linkElem)
linkElem.click() # follows the "Read It Online" link

运行它会抛出以下异常:

Traceback (most recent call last):
File "C:\Users\LB\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start
    stdout=self.log_file, stderr=self.log_file)
  File "C:\Users\LB\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "C:\Users\LB\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 990, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/LB/Desktop/PythonProjects/AutomateTheBoringStuffProjects/generalTestingFile.py", line 2, in <module>
    browser = webdriver.Firefox()
  File "C:\Users\LB\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 142, in __init__
    self.service.start()
  File "C:\Users\LB\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 

我已经下载了最新的geckodriver.exe(特别是 64 位版本,因为我使用的是 64 位操作系统,但我运行的是 32 位 Firefox,如果可以的话?),但我不确定将其放在哪里。

我已经查找了如何更改路径,但我不知道我到底应该更改什么或它应该指向哪里。 (Firefox 文件夹?Python 文件夹?)


按照某人的建议放置geckodriver.exe in C:\Users\LB\并编辑系统路径以将该位置添加到名为“路径”的变量中。现在代码可以运行了! (显然,您可以将 geckodriver.exe 放在任何地方,只要您将路径指向该特定文件夹即可。)

Source: https://www.howtogeek.com/118594/how-to-edit-your-system-path-for-easy-command-line-access/ https://www.howtogeek.com/118594/how-to-edit-your-system-path-for-easy-command-line-access/


This answer was posted as a comment https://stackoverflow.com/questions/44088288/how-to-set-up-python-3-selenium-geckodriver-for-firefox-on-windows-10#comment75199024_44088288 to the question How to set up Python 3 Selenium/Geckodriver for Firefox on Windows 10? https://stackoverflow.com/questions/44088288/how-to-set-up-python-3-selenium-geckodriver-for-firefox-on-windows-10 by the OP LBoot https://stackoverflow.com/users/7902878/lboot.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Windows 10 上为 Firefox 设置 Python 3 Selenium/Geckodriver? 的相关文章

随机推荐

  • php shell exec wget 不在后台运行

    我想按如下方式运行 wget shell exec wget http somedomain com somefile mp4 sleep 20 continue my code 我想要的是让 PHP 等待 shell exec wget
  • 控制台应用程序相互通信的推荐方式是什么?

    我有一个用 C 编写的控制台应用程序系统 在不同的机器上运行 我用的是MSMQ 我的问题是 如何使我的控制台应用程序相互通信 我这样问是因为我想创建一个新的控制台应用程序 其他应用程序可以查询该应用程序以了解 MSMQ 中的消息数量 编辑1
  • 我可以在 pom 或 settings.xml 中包含 mvn deploy:deploy-file 而不是 cli goal

    我需要将自定义 jar 与从我的 Java 项目生成的 jar 一起部署到 Artifactory 目前我能找到的唯一方法是通过命令行目标使用 mvn deploy deploy file DgroupId
  • 配置套接字 ACK 超时?

    有没有办法配置套接字在决定连接失败之前期望收到已发送数据的 ACK 的超时 我知道这也可以在应用程序级别完成 但是由于我发送的每个数据包都已被确认 并且我只想知道是否收到了我的数据 因此在应用程序级别使用附加数据来完成相同的任务事情似乎很浪
  • Nexus3:推送到 Docker Group Repo

    I have Nexusv3 6 and created a Docker repo docker repo type hosted and a Docker group docker group type group For both I
  • 动态调用方法和类名

    在某些情况下 我必须从类名中调用方法名 string scenario1 MockScenario1 string scenario2 MockScenario2 MockScenario1 GetInfo MockScenario2 Ge
  • 为什么我只能看到一个 Spark Streaming kafkaReceiver

    我很困惑为什么我只能在 Spark Web UI 页面 8080 中看到一个 KafkaReceiver 但我在Kafka中有10个分区 并且在spark集群中使用了10个核心 我的Python代码如下 kvs KafkaUtils cre
  • Python configparser 不会接受没有值的键

    因此 我正在编写一个从配置文件中读取的脚本 并且我想完全按照 configparser 的设计方式使用它 如下所述 http docs python org release 3 2 1 library configparser html h
  • 编译器如何将异步方法的返回值转换为返回Task

    我设计了以下方法来创建记录 public Task
  • 常规的。表达式检查字符串的第一个字母

    我想检查字符串的第一个字符是否是字母 我的正则表达式是 a zA Z 这是行不通的 它出什么问题了 您的表达式不需要 也不应该有 a zA Z 事实上 如果您不需要知道这封信是什么 您可以更简单 a zA Z These expressio
  • 如何打包Python程序

    我是 python 编程新手 我正在编写一个简单的基于命令行的 twitter 应用程序 我必须使用外部库 如 simplejson tweepy 等 有没有一种方法可以打包我的python程序来包含这些库 这样当我分发这个程序时 用户不必
  • 从 .Net 中的 SAS 数据源读取数据

    我被要求在 ASP Net 应用程序中从 SAS 读取一些数据 我有 Windows 窗体应用程序的工作代码 然而相同的代码doesn t在 ASP Net 中工作 但我可以尝试一下 具有相同引用的干净项目始终会失败 这是我所得到的连接 S
  • 尽管链表和数组的插入和删除操作都需要 O(n) 时间复杂度,但链表在插入和删除操作方面如何比数组更快?

    数组中插入和删除操作的最坏情况运行时间是 O n 因为我们可能需要进行 n 次移位 链表也是如此 如果我们想要插入或删除第i个元素 我们可能需要遍历整个链表才能到达预期执行插入 删除的位置 所以链表也需要O n 时间 那么为什么在进行插入
  • NetBeans 中的编译问题

    我通过下载 Bouncy castle 的一些第三方 jar 在 NetBeans 中创建了一个项目 它提供了一些 java 加密 API 我还下载了源代码并将它们按照包名称放在 src 文件夹下 然而 我的项目中的一些 java 文件显示
  • AngularJS 动态表单字段验证

    我正在尝试验证从后端端点提供给我的一些表单字段 所以基本上input元素是在 a 内动态创建的ng repeat 因此 input属性也是动态添加的 例如type name etc 然而由于name当我尝试验证属性时 属性是动态添加的 例如
  • 使用systemd启动的python无法启动子进程

    我在 virtualenv 中有一个 python 脚本 它是使用 systemd 启动的 Unit Description app After network target Service Type simple User user Gr
  • 如何格式化 java.time.Duration mm:ss

    我有一个java time Duration 我想以mm ss的形式输出它 似乎不可能使用 DateTimeFormatter 因为它只接受 LocalTime ZonedTIme 等 所以我这样做了 90秒工作正常 给出1 30 但66秒
  • 简单展开/折叠 div > JQuery?

    我需要向应用程序中的一系列父容器 div 添加一些手风琴样式展开 折叠句柄 对于像 jquery 这样的库来说 这是否太简单了 Example div class handleDiv expand collapse div child el
  • 在 Heroku + Django 上生成长时间运行的文件

    我有一个在 Heroku 上运行的 Django 应用程序 用户可以下载 Excel PDF 格式的各种报告 其中一些报告可能需要一分钟才能生成 这意味着我需要在后台 工作进程上创建它们 我已经将 celery 设置为与 redis 一起作
  • 如何在 Windows 10 上为 Firefox 设置 Python 3 Selenium/Geckodriver?

    看到很多人都遇到过这样的问题 但在我所有的搜索中 我看到了很多我不理解的相互矛盾和令人困惑的信息 这有点超出了我的新手深度 我在 PyCharm 中安装了 Selenium 并尝试运行 Automate The Boring Stuff w