Running Puppeteer from GitLab

Viewed 273

I am trying to execute the below script from GitLab CI/CD.

This puppeteer script is in a .js which is getting called from the GitLab repositories .gitlab-ci.yml file.

The purpose of the script is to navigate to INITIAL_PAGE_URL, login and navigate to the HOME_PAGE. The sign-in-button has a click method which on successful login navigates to the HOME_PAGE.

The script runs perfectly when running from the local system but when running from GitLab:

  • no error is shown
  • console.log("logged in") is executed and prints the message.

However, it does not navigate to the next page and page.url() still shows the INITIAL_PAGE_URL.

Any suggestions?

const HOME_PAGE = "https://www.abcd.com/home"
const SIGN_IN_FORM = "#frmSignIn";
const USERNAME_SELECTOR = 'input#EmailAddress';
const PASSWORD_SELECTOR = 'input#Password';
const LOGIN_BUTTON_SELECTOR = '#sign-in-button';
const SECRET_EMAIL = 'username';
const SECRET_PASSWORD =  'password';
const CHROME_EXE_PATH =
  process.env.CHROME_EXE_PATH === "" ? "" : process.env.CHROME_EXE_PATH || "/usr/bin/chromium-browser";

const puppeteer = require('puppeteer')

const main = async () => {
  const browser = await puppeteer.launch({
    headless: true,
    executablePath: CHROME_EXE_PATH,
    args: ['--no-sandbox', '--disable-setuid-sandbox']
  })

  console.log("browser loaded")
  const page = await browser.newPage()
  await page.setViewport({width: 1366, height: 768})

  //Script for login page - start
  console.log("Navigating to initial page")
  await page.goto(INITIAL_PAGE_URL, { waitUntil: 'networkidle2' })
  await page.waitForSelector('#frmSignIn')
  await page.type('input#EmailAddress', SECRET_EMAIL)
  await page.type('input#Password', SECRET_PASSWORD)
  await page.click(LOGIN_BUTTON_SELECTOR)
  console.log("logged in")
  console.log(page.url());  


  await browser.close();
}
main()
0 Answers
Related