What you're trying to achieve:
Deploying a SpringBoot Application to Heroku.
The SpringBoot Application uses Selenium and ChromeDriver, in either Headless or UI Mode.
You're using BoniGarcia's WebDriverManager to configure the ChromeDriver for Selenium.
You deploy to Heroku and then try to run the Application.
Error message:
/app/.cache/selenium/chromedriver/linux64/104.0.5112.79/chromedriver: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
ERROR 4 --- [io-55072-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.] with root cause
org.openqa.selenium.WebDriverException: Driver server process died prematurely.
Solution:
You need to add the ChromeDriver and Google Chrome BuildPacks to your Heroku Deployment.
You can do this in the Heroku Web UI -> Your App -> Settings -> Build Packs and Add these two URLs:
- https://github.com/heroku/heroku-buildpack-google-chrome
- https://github.com/heroku/heroku-buildpack-chromedriver
Heroku CLI:
heroku create --buildpack https://github.com/heroku/heroku-buildpack-chromedriver.git
heroku create --buildpack https://github.com/heroku/heroku-buildpack-google-chrome.git
In your App.json file, for your "Deploy to Heroku" button, you can add these as:
"buildpacks": [
{
"url": "https://github.com/heroku/heroku-buildpack-chromedriver"
},{
"url": "https://github.com/heroku/heroku-buildpack-google-chrome"
}
],
I hope that this solves you issue,
Luke
No comments:
Post a Comment
Note: only a member of this blog may post a comment.