Python 如何解决;chromedriver可执行文件需要位于路径“中”;在PyDev中使用virtualenv运行Selenium Chrome时出错?

Python 如何解决;chromedriver可执行文件需要位于路径“中”;在PyDev中使用virtualenv运行Selenium Chrome时出错?,python,selenium,virtualenv,pydev,selenium-chromedriver,Python,Selenium,Virtualenv,Pydev,Selenium Chromedriver,简称: 在阅读了使用selenium模块控制浏览器后,我试图在PyDev的虚拟环境中运行selenium Chrome驱动程序。我在PyDev之外成功地做到了这一点,但在PyDev内部,我得到了: selenium.common.exceptions.WebDriverException:消息:“chromedriver”可执行文件需要位于路径中。 长: 我使用的是Linux Debian 3.10.11-1 接下来,在开始使用PyDev之前,我 使用VirtualEnvironment设置虚拟

简称:

在阅读了使用selenium模块控制浏览器后,我试图在PyDev的虚拟环境中运行selenium Chrome驱动程序。我在PyDev之外成功地做到了这一点,但在PyDev内部,我得到了:

selenium.common.exceptions.WebDriverException:消息:“chromedriver”可执行文件需要位于路径中。

长:

我使用的是Linux Debian 3.10.11-1

接下来,在开始使用PyDev之前,我

  • 使用VirtualEnvironment设置虚拟环境

    pip install virtualenv
  • 已安装的virtualenv

    pip install virtualenv
  • 激活它

    source env/bin/activate 并通过单击运行菜单>以运行方式运行Python运行来运行它

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

    selenium.common.exceptions.WebDriverException:消息:“chromedriver”可执行文件需要位于路径中。

  • 要使web浏览器窗口像在命令提示符下运行同一纸条时一样打开,我尝试了以下操作:

    • 将虚拟环境的
      bin
      文件夹(因为
      chromedriver
      文件就在那里)添加到解释器

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

    • chromedriver
      复制到脚本所在的同一目录中。没有区别

    • 添加我下载到解释器的
      chromedriver\u linux64.zip文件。还是一样的错误

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


    如何在PyDev中的“
    路径”中获得这个“chromedriver”,以便从Eclipse中运行脚本?

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

    更准确地说:

  • 窗口Eclipse中的菜单>首选项左侧的PyDev解释器Python解释器

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

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

  • 单击右侧的选择…按钮

    出现了环境变量的列表

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

    它及其值(
    /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    )出现在其他空列表中

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

    它的名称和值变得可编辑

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

  • 单击确定返回到首选项窗口>首选项窗口中的应用确定关闭首选项窗口

  • 从Eclipse中运行程序(选择脚本文件>Run菜单>runasPython Run

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


    很好。

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


    这是我尝试从VirtualNV运行chromedriver时的最终解决方案。

    步骤1到3对我有效,然后在Python解释器中,在环境中,我可以单击New,创建一个变量:例如“chromedriver”,其值为:“/usr/local/bin”,然后单击Apply&OK。为了更清楚地了解值路径,您可以检查ChromeDrive在系统中的位置。在Mac上,这通常可以在“/usr/local/bin/chromedriver”中找到。 cd my_mproject virtualenv env source env/bin/activate python Python 2.7.12rc1 (default, Jun 13 2016, 09:20:59) [GCC 5.4.0 20160609] on linux2 pip install selenium 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() from selenium import webdriver driver = webdriver.Chrome()
    chromedriver_loc = '/path/to/chromedriver'
    driver = webdriver.Chrome(executable_path=chromedriver_loc)