Java запускает Chromedriver с селеном на сервере Ubuntu - PullRequest
0 голосов
/ 27 января 2019

У меня есть веб-сервлет Java, который я хочу разместить на сервере Ubuntu 18.04 под управлением Tomcat 8. Во время выполнения сервлет использует селен и хромодрайвер.Сервлет работал нормально на моей локальной машине, на которой запущен Tomcat 8 в Windows 10. Я попытался отредактировать код для запуска на моем сервере, как показано ниже:

static WebDriver browser;
static AutomatedPromethee automatedPromethee;
static ChromeOptions options = new ChromeOptions();

options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("--disable-extensions");
options.setBinary(new File("/var/lib/tomcat8/webapps/chromedriver"));

//capabilities.setCapability(ChromeOptions.CAPABILITY, options);
browser = new ChromeDriver(options);

Мне удалось успешно импортировать библиотеки селена итакже скопировал файл chromedriver в папку на моем сервере.Тем не менее, веб-приложение не открывает новый экземпляр браузера, как ожидалось в соответствии с последней строкой кода выше.Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 01 февраля 2019

После долгих хлопот мне наконец удалось решить эту проблему.Вот хронология того, что я сделал, может быть, некоторые из них не были необходимы, но кто знает?

* Установите xvfb и зависимости

apt-get install xvfb libxi6 libgconf-2-4

* Установите браузер Google Chrome и убедитесь, что егов /usr/bin/google-chrome (с символьной ссылкой тоже все в порядке).

* Скопировать chromedriver в /usr/local/bin/

* Убедитесь, что у chromedriver есть разрешение + x (исполняемый)

Затем запуститеследующие команды в Ubuntu:

Xvfb -ac :99 -screen 0 1280x1024x16 &
export DISPLAY=:99

Мой последний код сервлета был следующим:

static WebDriver browser;
static ChromeOptions options = new ChromeOptions();

System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");

options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("--disable-extensions");

browser = new ChromeDriver(options);

Это сработало для меня.Я надеюсь, что это поможет кому-то еще

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...