当前位置: 首页 > 知识库问答 >
问题:

如何解决PyDev内使用virtualenv运行Selenium Chrome时“chromedriver可执行文件需要在PATH中”的错误?

殷建弼
2023-03-14

简短:

在https://automatetheboringstuff.com/chapter11阅读了使用selenium模块控制浏览器后,我试图在PyDev的虚拟环境中运行SeleniumChrome驱动程序。我已经设法从PyDev外部做到了这一点,但从内部,我得到了:

< code > selenium . common . exceptions . web driver exception:消息:“chromedriver”可执行文件需要位于路径中。

长:

我用的是LinuxDebian 3.10.11-1

跟随https://www . dabapps . com/blog/introduction-to-pip-and-virtualenv-python/,甚至在开始使用PyDev之前,我。。

>

  • 使用虚拟环境设置虚拟环境

    >

  • 已安装虚拟环境

    pip install virtualenv

    为我的项目制作了一个目录

    cd ~/temp/
    mkdir my_project
    cd my_mproject

    创建了一个名为< code>env的虚拟环境

    virtualenv env

    已激活它。

    source env/bin/activate

    进入Python的交互模式,告诉自己我正在使用哪个版本的Python

    python
    Python 2.7.12rc1 (default, Jun 13 2016, 09:20:59) 
    [GCC 5.4.0 20160609] on linux2

    退出交互模式并安装了硒的东西

    >

  • 首先是模块

    pip install selenium

    根据https://groups.google.com/forum/#!的建议topic/observe-the-testing-goat-book/ty 4 fqov 3s 0 q,已安装chromedriver

    1. cd env/bin/
      wget http://chromedriver.storage.googleapis.com/2.22/chromedriver_linux64.zip
      unzip chromedriver_linux64.zip

      写了一个小脚本,看看它是否有效

      from selenium import webdriver
      driver = webdriver.Chrome()

      运行它。此时将打开一个浏览器窗口。伟大。

      现在在PyDev中尝试一下:

      大致如下https://www . caktusgroup . com/blog/2011/08/31/getting-started-using-python-eclipse/。。。

      >

    2. 已安装的Eclipse(Neon)

      已安装PyDev

      在Eclipse中,创建了一个新项目(文件菜单

      回到命令提示符处(因为我还没有找到如何在Eclipse和PyDev中实现这一点):< code>cd进入我的新项目的根目录,并创建了一个虚拟环境。

      像以前一样,仍然在命令提示符下,我激活了新项目的虚拟环境,安装了Selenium模块,然后安装了< code > chrome driver _ Linux 64 . zip 文件的< code>chromedriver可执行文件。

      回到Eclipse,我注册了我的项目来使用虚拟环境,我想用PyDev的行话来说这不是虚拟环境,而是一个解释器:

      >

    3. 窗口菜单

      给翻译起了个名字。

      对于解释器可执行文件,我在项目的虚拟环境的bin目录中选择了python2.7文件

      右键单击我的项目,选择属性

      给了我的项目同样的脚本。。。

      from selenium import webdriver
      driver = webdriver.Chrome()

      并通过点击运行菜单来运行它

      但是现在,Chrome浏览器窗口没有打开,我在Eclipse的控制台上只看到一条消息:

      < code > selenium . common . exceptions . web driver exception:消息:“chromedriver”可执行文件需要位于路径中。

      为了让Web浏览器窗口像从命令提示符运行相同的scrip时那样打开,我尝试了:

      >

    4. 将虚拟环境的bin文件夹(因为那是chromedrive文件所在的位置)添加到解释器。

      删除解释器并创建新的解释器。

      将< code>chromedriver复制到我的脚本所在的目录中。没有区别。

      将我下载的chromedriver_linux64.zip文件添加到解释器。仍然是相同的错误。

      我一直在继续用PyDev编写脚本,然后转到命令提示符来运行它。只是希望我能在PyDev的调试模式下运行它。

      我如何在PyDev的“< code>PATH”中获得这个“chromedriver”,以便从Eclipse运行脚本?

  • 共有2个答案

    缪茂勋
    2023-03-14

    如果将chromedrive放入PATH的所有尝试都失败,您还可以将可执行路径交给webdriver.Chrome(),如下所示:

    chromedriver_loc = '/path/to/chromedriver'
    driver = webdriver.Chrome(executable_path=chromedriver_loc)
    

    这是我在尝试从虚拟env运行chrome驱动程序时的最终解决方案

    聂迪
    2023-03-14

    不确定这是否是最好的办法,但我找到了一些似乎有效的东西:我已经向我的解释器添加了名为PATH的可用变量,并且我已经编辑了该变量的值以包含项目虚拟环境的bin目录(即,我保存了chromedriver可执行文件的目录)的相对路径。

    更准确地说:

    >

  • Eclipse中的窗口菜单

    选择我之前为我的项目创建的解释器(如上面问题中所述)

    在首选项窗口的下半部分从库切换到环境

    已单击“选择...按钮在右边。

    出现了环境变量列表。

    向下滚动列表,找到一个名为PATH的。选择它并单击确定按钮。

    它和它的值(/usr/local/bin:/usr/bin:/bin:/usr/local/game:/usr/game)出现在否则为空的列表中。

    我选择了它并点击了编辑…

    它的名称和价值变得可编辑。

    在值的右端,我添加了: env/bin(即,从保存我的脚本的目录到我项目的虚拟环境的bin目录的相对路径)。

    单击确定返回首选项窗口

    从Eclipse中运行程序(选择了脚本文件

    一个Chrome(嗯,Chrome——这是Debian)窗口打开了,就像我在命令提示符下运行程序时发生的一样。

    伟大。

  •  类似资料:
    • $brew安装chromedriver-找不到bash:brew:命令 我下载了chrome驱动程序,甚至把它放在了工作目录中。仍然会出现这个错误。我几乎不知道python是什么。请帮忙。

    • ...我不断收到以下错误消息: 但是-如上所述-可执行文件是(!)在路上...这是怎么回事?

    • 我是编程新手,大约两个月前开始使用Python,现在正在复习Sweigart的“用Python文本自动处理无聊的东西”。我正在使用IDLE并且已经安装了Selenium模块和Firefox浏览器。

    • 问题内容: 错误信息: “ chromedriver”可执行文件必须位于PATH中 我试图在pycharm中使用Selenium编写脚本,但是发生了以上错误。我已经将硒链接到pycharm上(如此处所示)(最新)。 我是硒的新手,不是“ selenium”文件夹中的chromedriver。如果不是,我在哪里可以找到它并将其添加到路径中? 顺便说一句,我尝试在cmd中键入“ chromedrive

    • 问题内容: 错误信息: “ chromedriver”可执行文件必须位于PATH中 我试图在pycharm中使用Selenium编写脚本,但是发生了以上错误。我已经将selenium链接到pycharm上(如此处所示)(最新)。 我是selenium的新手,不是“ selenium”文件夹中的chromedriver。如果不是,我在哪里可以找到它并将其添加到路径中? 顺便说一句,我尝试在cmd中键

    • 问题内容: 当我运行脚本时,出现此错误 这是我的剧本 问题答案: 如果我们分析日志,似乎主要问题在于in 和随后的错误消息 。 因此,从错误中很明显,Python客户端无法找到 二进制文件。 您必须在这里注意以下几点: :参数配置 不是 将选择的文件路径, 但不会 在末尾追加。 这里是我的示例代码系统开始 在 :