40 votes

Impossible de charger Atom '' find_element "

J'ai récemment installé PhantomJS et j'ai rencontré cette erreur lors de ma première exécution:

 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)
 

Ce code fonctionne avec Firefox WebDriver mais pas avec PhantomJS. Je reçois l'erreur suivante:

 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'
 

63voto

Zhongtian Points 596

La raison en est que j'ai utilisé apt-get install Phantomjs pour l'installer, mais il semble que ce soit une version non fonctionnelle de Phantomjs installée par apt-get . Téléchargez donc manuellement sur le site Web de Phantomjs et ajoutez la direction qui le contient à la variable d’environnement PATH .

18voto

Punit S Points 824

Ce sont les étapes précises qui ont fonctionné pour moi:

  1. Purger les vieux phantomjs
    apt purge phantomjs

  2. Wget les derniers phantomjs (selon http://phantomjs.org/download.html )
    wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2

  3. Décompressez
    tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2

  4. Déplacé l'exécutable de phantomjs vers / usr / bin / (peut avoir besoin de sudo)
    cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/

7voto

Nikita Points 328

Pour moi ça commence à marcher aprè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
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X