2016-04-21 33 views
28

我最近安裝PhantomJS並遇到了我的第一次運行這個錯誤:無法加載的Atom'find_element」

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) 

該代碼可以使用火狐的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' 
+0

你確定了phantomjs.exe文件,或任何文件,是在你的Python PATH?如果是這樣,phantomjs進程是否處於活動狀態? – DuckPuncher

回答

51

的原因是,我用apt-get install Phantomjs安裝它,但它似乎是apt-get安裝了一個不完整的功能Phantomjs版本,所以,從Phantomjs網站手動下載和含方向增加。 PATH環境變量。

+4

同樣發生在這裏:從Ubuntu 16.04 PhantomJS有這個錯誤,從網站的版本剛剛工作。 – epx

+10

是的,我通過執行'sudo apt purge phantomjs'來解決它,然後讓npm用'npm install phantomjs-prebuilt'安裝phantomjs。 – nnyby

+2

我不得不安裝依賴關係http://stackoverflow.com/a/36843608/977622 – psychok7

5

對於我來說,開始工作後

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 
7

這些是對我工作的具體步驟:

  1. 清除舊phantomjs
    apt purge phantomjs

  2. Wget的最新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中/(可能需要須藤)
    cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/

+0

將二進制文件移動到'/ usr/local/bin'中。 – Onlyjob