使用python在linux上运行phantomjs

时间:2016-06-28 02:20:55

标签: python linux phantomjs

我关注this link,现在当我输入phan然后选项卡(\t)时,它会自动完成幻像.J。

然而,如果我运行phantomJS -vphantomJS --version,我会得到:

bash: /usr/local/bin/phantomjs: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

此外,如果我尝试运行:

>>> from selenium import webdriver
>>> driver = webdriver.PhantomJS()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 50, in __init__
    service_args=service_args, log_path=service_log_path)
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/phantomjs/service.py", line 50, in __init__
    service.Service.__init__(self, executable_path, port=port, log_file=open(log_path, 'w'))
IOError: [Errno 13] Permission denied: 'ghostdriver.log'
>>> 

如果我尝试关注this I get

>>> import os
>>> driver = webdriver.PhantomJS(service_log_path=os.path.devnull)
Exception AttributeError: "'Service' object has no attribute 'log_file'" in <bound method Service.__del__ of <selenium.webdriver.phantomjs.service.Service object at 0x7f182ec13690>> ignored
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 51, in __init__
    self.service.start()
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 69, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH. 

>>> 

我的selenium / phatnomjs是否安装了适当的权利?

我创建了一个目录/home/ec2-user/temp并设置了:

chmod 777 /home/ec2-user/temp

然而

>>> from selenium import webdriver
>>> driver = webdriver.PhantomJS(service_log_path='/home/ec2-user/temp/ghostdriver.log')

收率:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 51, in __init__
    self.service.start()
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 69, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH. 

如果我输入which phantomjs,我会:

$ which phantomjs
/usr/local/bin/phantomjs

2 个答案:

答案 0 :(得分:2)

听起来像是64比32的问题。

要了解你的ubuntu版本是什么,你可以运行

$ uname -i
x86_64

然后确保download正确版本的幻像

还要确保您的lib与您的操作系统版本相对应。

答案 1 :(得分:0)

您可以查看此link

react-native upgrade

对我来说效果很好。