Selenium не может подключиться к GhostDriver (но только иногда)
Я установил простой скрипт на Python с Selenium и PhantomJS. У меня есть около 200 URL в общей сложности. Сначала скрипт работает нормально, а затем примерно через 20-30 URL-адресов (он может быть более / менее, так как кажется случайным, когда он терпит неудачу и не связан с каким-либо конкретным URL). Я получаю следующую ошибку в python:
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to GhostDriver'
И мой ghostdriver.log:
PhantomJS is launching GhostDriver...
[ERROR - 2014-07-04T17:27:37.519Z] GhostDriver - main.fail - {"message":"Could not start Ghost Driver","line":82,"sourceId":140692115795456,"sourceURL":":/ghostdriver/main.js","stack":"Error: Could not start Ghost Driver\n at :/ghostdriver/main.js:82","stackArray":[{"sourceURL":":/ghostdriver/main.js","line":82}]}
Я искал, и большинство вопросов по SO, похоже, что они не могут даже запустить один URL. Единственный другой вопрос, который я нашел, где ошибка возникает в середине скрипта, это тот, и ответ - обновить phantomjs до последней версии, что я и сделал. Другой ответ просто говорит, что нужно попробовать этот URL снова и не кажется хорошим решением, так как URL может просто снова потерпеть неудачу.
Я использую phantomjs версии 1.9.7 и selenium версии 2.42.1 в Linux Mint 17 на python 2.7.6
for url in ['example.com/1/', 'example.com/2/', 'example.com/3/', .. , ..]:
user_agent = 'Chrome'
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap['phantomjs.page.settings.userAgent'] = user_agent
driver = webdriver.PhantomJS(executable_path='/usr/bin/phantomjs', desired_capabilities=dcap)
driver.get(url)
1 ответ
У меня была та же проблема, чтобы исправить это, я установил phantomjs из источника.
For Linux (Debian):
sudo apt-get update
sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev libxft-dev
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.9
./build.sh
For Mac os:
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.9
./build.sh
Для других систем проверьте следующую ссылку http://phantomjs.org/build.html
Optional :
cd bin
chmod +x phantomjs
cp phantomjs /usr/bin/
Я понял это, потому что когда я прочитал мой файл ghostdriver.log, он сказал.
[ERROR - 2014-09-04T19:33:30.842Z] GhostDriver - main.fail - {"message":"Could not start Ghost Driver","line":82,"sourceId":140145669488128,"sourceURL":":/ghostdriver/main.js","stack":"Error: Could not start Ghost Driver\n at :/ghostdriver/main.js:82","stackArray":[{"sourceURL":":/ghostdriver/main.js","line":82}]}
Я был уверен, что должны быть какие-то недостающие файлы, которые он должен использовать для некоторых крайних случаев. Поэтому я решил собрать из исходного кода, и теперь он работает нормально.