0

Here is my docker file.

FROM node:17.2.0 USER root WORKDIR /LT RUN apt-get update RUN apt-get install git --yes COPY /LT . COPY /LT/test . COPY ["/LT/package.json", "."] # Install Google Chrome RUN apt-get install wget RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb RUN apt-get install ./google-chrome*.deb --yes ENV CHROME_BIN=/usr/bin/google-chrome RUN npm install RUN npm ci RUN npm install nodejs RUN npm install mocha -g RUN npm install chromedriver -g --unsafe-perm RUN npm install selenium-webdriver RUN npm install webdriver-manager #RUN webdriver-manager update CMD ["node", "./test/script1.js"] 

Following is my nodejs javascript file which uses chrome to launch the application and login.

require("chromedriver"); const {By,Key,Builder} = require("selenium-webdriver"); const chrome = require('selenium-webdriver/chrome'); async function getAuthCode(){ const url = "https://abcd.com"; //To wait for browser to build and launch properly let driver = await new Builder() .forBrowser("chrome") .setChromeOptions(new chrome.Options().headless()) //.setChromeOptions(new chrome.Options().addArguments(['--no-sandbox','-headless', '--disable-dev-shm-usage'])) .build(); await driver.get(url); console.log(driver); const wait = ms => new Promise(resolve => setTimeout(resolve, ms)); await wait(1 * 20 * 1000); await driver.manage().window().setRect({ width: 1552, height: 840 }); await driver.findElement(By.id("emailInput")).click(); await driver.findElement(By.id("emailInput")).sendKeys("[email protected]"); await driver.findElement(By.id("submitbutton")).click(); await wait(1 * 20 * 1000); await driver.quit(); return 'some data'; } async function testAuthCode() { var cCode = await getAuthCode(); console.log(cCode); } testAuthCode(); 

When I run my docker compose file using the same docker file which is given above, I get following error.

WebDriverError: unknown error: Chrome failed to start: exited abnormally. -nodejs-1 | (unknown error: DevToolsActivePort file doesn't exist) -nodejs-1 | (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) -nodejs-1 | at Object.throwDecodedError (/LT/node_modules/selenium-webdriver/lib/error.js:539:15) 

I know the reason , It can not find the chromedriver at the default path '/usr/bin/google-chrome'.

Either

  1. I have to install chrome at the default location given Or
  2. give the path of that location where chrome is actually installed.

In either case, How do I do it in JavaScript or docker?

PS: The script runs perfectly fine in my local windows environment.

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.