web-dev-qa-db-ja.com

ロードできません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'
37
Clone

その理由は、apt-get install Phantomjsを使用してインストールしたためですが、apt-getによってインストールされたフル機能のPhantomjsバージョンではないようです。そのため、Phantomjs Webサイトから手動でダウンロードし、PATH環境変数に含まれる方向を追加します。

61
Zhongtian

これらは私のために働いた正確なステップです:

  1. 古いphantomjsを削除する
    apt purge phantomjs

  2. 最新のphantomjsを取得します( http://phantomjs.org/download.html に従って)
    wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2

  3. 解凍します
    tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2

  4. Phantomjs実行可能ファイルを/ usr/bin /に移動しました(Sudoが必要な場合があります)
    cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/

13
Punit S

私にとっては、後に動作し始めます

apt install nodejs-legacy # just an alias node/nodejs to make npm install work
apt purge phantomjs       # optionaly
npm install -g phantomjs  # most important part because apt installation failed for me
6
Nikita