2017-01-18 3 views
0

У меня есть сценарий с Selenium, который правильно работал как на ПК, так и на сервере. Несколько дней назад он остановился на сервере, и все же я не понял, что не так. Я установил оба Firefox (41.0.2) и Selenium (2.53.5), похожие на pc и local.Selenium работает неправильно на сервере

запуск:

from selenium import webdriver 

browser = webdriver.Firefox() 

С текущей версией я сталкиваюсь этой ошибка:

selenium.common.exceptions.WebDriverException: Message: The browser appears to have exited before we could connect. If you specified a log_file in the FirefoxBinary constructor, check it for details. 

я должен упомянуть, что я запускаю мой код с установкой DISPLAY: = 1;

я решил обновить селеном до 3.0.2, и я сталкивался с:

IOError: [Errno 13] Permission denied: 'geckodriver.log' 

Основываясь на рекомендации других людей, которые сталкиваются этот вопрос, я скачал geckidriver и поместить его в/USR/местные/бен. Тем не менее, я все еще не могу запустить свой код. Странная часть заключается в том, что код запускается без каких-либо проблем над ПК!

Любые советы или предложения?

Это выход geckodriver.log:

(firefox:94561): GConf-WARNING **: Client failed to connect to the D-BUS daemon: 
/usr/bin/dbus-launch terminated abnormally without any error message 
1484733755568 geckodriver  INFO Listening on 127.0.0.1:35823 
1484733756567 mozprofile::profile  INFO Using profile path  /tmp/rust_mozprofile.UiIxs53qoUs1 
1484733756568 geckodriver::marionette INFO Starting browser /usr/bin/firefox 
1484733756573 geckodriver::marionette INFO Connecting to Marionette on localhost:44907 

(process:95171): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed 

Xlib: расширение "RandR" отсутствует на дисплее ": 1".

(firefox:95171): GConf-WARNING **: Client failed to connect to the D-BUS daemon: 
/usr/bin/dbus-launch terminated abnormally without any error message 

(firefox:95171): GConf-WARNING **: Client failed to connect to the D-BUS daemon: 
/usr/bin/dbus-launch terminated abnormally without any error message 

(firefox:95171): GConf-WARNING **: Client failed to connect to the D-BUS daemon: 
/usr/bin/dbus-launch terminated abnormally without any error message 

    (firefox:95171): GConf-WARNING **: Client failed to connect to the D-BUS daemon: 
/usr/bin/dbus-launch terminated abnormally without any error message 

Благодаря

+0

Это мой geckodriver.log: – Moohebat

ответ

0

Проблема решена. Я бежал селен без головы, и даже я установил DISPLAY =: 1 он работал неправильно. Позже я сменил его на

export DISPLAY=:99 

И он начал работать снова. Я подозревал, что у меня был какой-то невозможен процесс, который они заблокировали мой ДИСПЛЕЙ. С проверкой моего процесса я ожидаю много процессов в Firefox. После всех их убить. Мой код запуск без каких-либо проблем на Селене 2.53.5 и Firefox 45.

Таким образом, я рекомендую, если ваш код работает правильно, прежде чем и вдруг ваш селен перестал работать, проверьте DISPLAY на:

export DISPLAY=:1 
firefox 

и Если эта ошибка поднимается:

Maximum number of clients reachedError: cannot open display: :1 selenium 

и в то же время он работает:

export DISPLAY=:99 
firefox 

Вы должны проверить приостановленные процессы, которые используют ваш ДИСПЛЕЙ 1.

Надеюсь, это поможет.

1

Вы должны установить свойство первого, как этот

System.setProperty("webdriver.firefox.marionette", getRootDir()+ "/src/main/java/configuration/geckodriver"); 

где getRootDir() абсолютный путь

затем создать драйвер

driver = new FirefoxDriver(); 
Смежные вопросы