【问题标题】:PhantomJS with Selenium: Message: 'phantomjs' executable needs to be in PATH带有 Selenium 的 PhantomJS:消息:“phantomjs”可执行文件需要在 PATH 中
【发布时间】:2019-06-05 14:08:48
【问题描述】:

我在将 PhantomJS 安装到我的项目时遇到问题 按照来自类似问题的建议,我用可执行路径定义了$PATH 变量

cd Users/zkid18/project/venv/venv_name/lib/python3.6/site-packages/phantomjs-2.1.1/bin 
export PATH=$PWD

然后我尝试用虚拟浏览器创建驱动

import from selenium import webdriver
browser = webdriver.PhantomJS()

在这一步我遇到了一个错误

No such file or directory: 'phantomjs': 'phantomjs'

我错过了什么?

【问题讨论】:

  • 检查您是否下载了适用于 32 位操作系统的 32 位 PhantomJS 版本或适用于 64 位操作系统的 64 位版本...另外最好将目录附加到 PATH (export PATH=$PATH:$PWD)而不是重新定义 PATH...
  • export PATH=$PWD 可能会让你的 shell 无法使用。
  • @Andersson 我用的是mac os x,所以我猜只有一个版本可用
  • 检查我的答案,它适用于 windows 和 mac os。

标签: python selenium selenium-webdriver webdriver phantomjs


【解决方案1】:

你需要给出路径:

browser = webdriver.PhantomJS(executable_path='Complete path/to/phantomjs')

要找到它,请在命令行中使用@Anderson 评论的export PATH=${PATH:+$PATH:}

【讨论】:

  • 如果这是一个 dup,请将它作为一个 dup 发布(看起来您已经这样做了),然后不要回答,因为它会导致新用户(以及可能的其他)用户感到困惑。
  • @JeffC 我做了,但看起来它没有回答 OP 的问题......看看我举的标志
  • @MosheSlavin 我对正确使用定义 PATH 有点困惑。为什么我应该附加路径而不是重新定义它?在export PATH=$PATH:$PWD 之后,我在命令行bash 中运行$PATH/usr/bin:/bin:/usr/sbin:/sbin:/Users/zkid18/project/venv/venv_name/lib/python3.6/site-packages/phantomjs-2.1.1/bin: No such file or directory 似乎我做错了什么
【解决方案2】:

此错误消息...

No such file or directory: 'phantomjs': 'phantomjs'

...暗示程序无法找到 phantomjs 二进制文件。

当您使用 MAC OS X 时,您需要从 Download PhantomJS 页面下载 phantomjs-2.1.1-macosx.zip 并提取(解压缩)其中的内容你的系统。接下来您可以提及传递参数executable_pathphantomjs 二进制文件的绝对路径,如下所示:

  • MAC OS X 示例:

    from selenium import webdriver
    
    driver = webdriver.PhantomJS(executable_path='/path/to/phantomjs-2.1.1-xxx/bin/phantomjs')
    driver.get('https://www.google.com/')
    print(driver.title)
    driver.quit()
    
  • Windows 操作系统示例:

    from selenium import webdriver
    
    driver = webdriver.PhantomJS(executable_path=r'C:\\Utility\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe')
    driver.get('https://www.google.com/')
    print(driver.title)
    driver.quit()
    

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 2017-12-08
    • 2020-09-11
    • 2015-11-08
    • 2017-03-04
    • 2018-02-14
    相关资源
    最近更新 更多