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

2023-12-30

Short:

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

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.

Long:

我使用的是 Linux Debian 3.10.11-1。

下列的https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/ https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/,在开始使用 PyDev 之前,我 . 。 。

  1. 使用virtualenv设置虚拟环境

    1. 安装的虚拟环境

      
      pip install virtualenv  
    2. 为我的项目创建了一个目录

      
      cd ~/temp/  
      
      mkdir my_project  
      
      cd my_mproject  
    3. 创建了一个名为的虚拟环境env

      
      virtualenv env  
    4. 激活了它。

      
      source env/bin/activate  
    5. 进入Python的交互模式来告诉自己我正在使用哪个版本的Python

      
      python  
      
      Python 2.7.12rc1 (default, Jun 13 2016, 09:20:59) 
      [GCC 5.4.0 20160609] on linux2  
  2. 退出交互模式并安装 Selenium 的东西

    1. 首先是模块

      
      pip install selenium  
    2. 以下建议位于https://groups.google.com/forum/#!topic/obey-the-testing-goat-book/Ty4FQoV3S0Q https://groups.google.com/forum/#!topic/obey-the-testing-goat-book/Ty4FQoV3S0Q,安装了chromedriver

      1. 
        cd env/bin/  
      2. 
        wget http://chromedriver.storage.googleapis.com/2.22/chromedriver_linux64.zip  
      3. 
        unzip chromedriver_linux64.zip  
  3. 写了一个小脚本,看看它是否有效

    
    from selenium import webdriver
    driver = webdriver.Chrome()  

    跑了。 Chrome 网络浏览器窗口打开。伟大的。

现在在 PyDev 中尝试一下:

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

  1. 安装的 Eclipse (Neon)

  2. 安装PyDev

  3. 从 Eclipse 中创建一个新项目 (File菜单 >新项目 > General > Project,输入了一个项目名并点击Finish).

  4. 回到命令提示符(因为我还没有找到如何从 Eclipse 和 PyDev 中执行此操作):cd进入我的新项目的根目录并创建一个虚拟环境。

  5. 和以前一样,仍然在命令提示符下,我激活了新项目的虚拟环境并安装了 Selenium 模块,然后chromedriver产生的可执行文件chromedriver_linux64.zip file.

  6. 回到 Eclipse,我注册了我的项目以使用虚拟环境,我猜在 PyDev 行话中这不是虚拟环境,而是解释器:

    1. Window菜单 >优先 > PyDev > 口译员 > Python 解释器 > Add.

    2. 给翻译起了名字。

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

    4. 右键单击我的项目,选择特性 > PyDev - 解释器/语法> 下口译员选择我的新口译员 >OK.

  7. 给我的项目相同的脚本。 。 。

    
    from selenium import webdriver
    driver = webdriver.Chrome()  

    并通过单击运行它Run菜单 >Run As > Python运行.

    不过现在,我不再打开 Chrome Web 浏览器窗口,而是在 Eclipse 控制台中收到一条消息:

    selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.

为了让网络浏览器窗口像我从命令提示符运行相同的脚本时一样打开,我尝试过:

  • 添加虚拟环境的bin文件夹(因为那是chromedriver文件是)到解释器。

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

  • 复制chromedriver进入我的脚本所在的同一目录。没有不同。

  • 添加chromedriver_linux64.zip我下载到解释器的文件。还是同样的错误。

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

我怎样才能在“PATH“在 PyDev 中,这样我就可以从 Eclipse 运行脚本?


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

更确切地说:

  1. WindowEclipse 中的菜单 >优先 > PyDev在左边>口译员 > Python 解释器.

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

  3. 切换自Libaries to 环境在下半部分优先 window

  4. 点击了选择...按钮在右侧。

    的列表环境变量出现了。

  5. 向下滚动查看失物招领处的姓名PATH。选择它并单击OK button.

    它和它的价值(/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games) 出现在原本为空的列表中。

  6. 我选择了它并单击Edit...

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

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

  8. Clicked OK回到优先窗口 >Apply in the 优先窗口 >OK关闭优先 window.

  9. 从 Eclipse 中运行程序(选择脚本文件 >Run菜单 >Run As > Python运行).

Chrome(嗯,Chromium - 这是 Debian)窗口打开,就像我从命令提示符运行程序时一样。

Great.

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

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

随机推荐