无法加载 Atom“find_element”

新手上路,请多包涵

我最近安装了 PhantomJS 并在第一次运行时遇到了这个错误:

 from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.PhantomJS()
driver.get("http://www.google.com")
driver.find_element_by_id('some_element').send_keys('something' + Keys.RETURN)

此代码适用于 Firefox webdriver 但不适用于 PhantomJS。我收到以下错误:

 Traceback (most recent call last):
  File "<PATHTOFILE>", line 20, in <module>
    driver.find_element_by_id('lst-ib').send_keys('something' + Keys.RETURN)
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 266, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 744, in find_element
    {'using': by, 'value': value})['value']
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 233, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/errorhandler.py", line 165, in check_response
    raise exception_class(value)
selenium.common.exceptions.WebDriverException: Message: Error - Unable to load Atom 'find_element' from file ':/ghostdriver/./third_party/webdriver-atoms/find_element.js'

原文由 Clone 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 718
2 个回答

原因是我用了 apt-get install Phantomjs 来安装,但是好像是 apt-get 安装的不是全功能的Phantomjs版本。因此,从 Phantomjs 网站手动下载并将包含方向添加到 PATH 环境变量。

原文由 Zhongtian 发布,翻译遵循 CC BY-SA 3.0 许可协议

这些是对我有用的精确步骤:

  1. 清除旧的 phantomjs

apt purge phantomjs

  1. Wget 最新的 phantomjs(根据 http://phantomjs.org/download.html

wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2

  1. 解压它

tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2

  1. 将 phantomjs 可执行文件移动到 /usr/bin/(可能需要 sudo)

cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/

原文由 Punit S 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进