Я пытаюсь выполнить приведенный ниже скрипт с GitLab CI / CD.
Этот сценарий кукловода находится в .js
, который вызывается из файла репозиториев GitLab .gitlab-ci.yml
.
Цель сценария - перейти к INITIAL_PAGE_URL
, войти в систему и перейти до HOME_PAGE
. Кнопка входа в систему имеет метод click, при котором при успешном входе в систему происходит переход к HOME_PAGE
.
. Сценарий отлично работает при запуске из локальной системы, но при запуске из GitLab:
- ошибка не отображается
console.log("logged in")
выполняется и печатает сообщение.
Однако он не переходит на следующую страницу, а page.url()
по-прежнему показывает INITIAL_PAGE_URL
.
Есть предложения?
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()