Я пытаюсь выполнить базовое тестирование с помощью Python + Splinter + Selenium + PhantomJS, но я не могу запустить браузер phantomjs. (Драйверы Chrome & Firefox отлично работает, хотя.) Когда я бегу:Сплиттер Selenium Phantomjs Драйвер с ошибкой при создании экземпляра
from splinter import Browser
b = Browser('phantomjs')
Я получаю ошибку:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/splinter/browser.py", line 63, in Browser
return driver(*args, **kwargs)
File "/Library/Python/2.7/site-packages/splinter/driver/webdriver/phantomjs.py", line 32, in __init__
self.driver = PhantomJS(desired_capabilities=capabilities, **kwargs)
File "/Library/Python/2.7/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 56, in __init__
desired_capabilities=desired_capabilities)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 87, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 141, in start_session
'desiredCapabilities': desired_capabilities,
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 199, in execute
response = self.command_executor.execute(driver_command, params)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 395, in execute
return self._request(command_info[0], url, body=data)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 463, in _request
resp = opener.open(request, timeout=self._timeout)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 449, in _open
'_open', req)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1227, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1197, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 8] nodename nor servname provided, or not known>
Кроме того, когда я бегу:
from selenium import webdriver
d = webdriver.PhantomJS()
я получаю по существу такая же ошибка.
Похоже, что PhantomJS использует драйвер Remote для подключения к удаленному серверу, но осколок не запускает сервер Selenium (?) Для подключения PhantomJS. Я бы не прочь войти в исходный код splinter (?) И изменить несколько вещей, чтобы сделать эту работу. Однако я не могу точно определить, что бы решить это.
Или, нужно ли вручную запустить сервер для подключения PhantomJS?
(Как ссылка, Ruby + Cucumber + Capybara + Poltergeist отлично работает на моей коробке.) Вот конфигурация моего программного обеспечения.
$ python --version
Python 2.7.10
$ pip show splinter | grep Version
Metadata-Version: 1.1
Version: 0.7.3
$ pip show selenium | grep Version
Metadata-Version: 2.0
Version: 2.47.3
$ phantomjs -v
2.0.0
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.10.5
BuildVersion: 14F27
Просто сделайте следующие изменения в своей первой строке. Фактический ответ отсюда: http://stackoverflow.com/questions/35262150/browser-in-python-shows-errors-in-idle/35288612 from splinter.browser import Браузер –