Кукловод - не может выполнить действие на селекторе при запуске на Дженкинсе - PullRequest
0 голосов
/ 26 апреля 2018

Я использую Puppeteer для проверки страницы входа в мое приложение.Приведенный ниже код отлично работает в моей локальной системе, но при запуске в Jenkins 9 раз из 10 я получаю сообщение об ошибке (упомянуто ниже).

Я пробовал разные способы исправить это, но не увенчался успехом.Также добавлен setTimeOut, но даже это не помогает исправить это.

Вот пример кода:

const puppeteer = require('puppeteer');
const CREDS = require('../creds');

describe('Login & Title', () => {
  var browser, page;
  var url = 'https://www.example.com/login'

beforeEach (async () => {
      browser = await puppeteer.launch({
    args: ['--no-sandbox'], headless: true
});

      page = await browser.newPage();
      await page.goto(url);

    })

afterEach (() => {
    browser.close()
  })

test('Test for Page Title', async () => {
    var millisecondsToWait = 500;
    setTimeout(function() {
    }, millisecondsToWait);

    const USERNAME_SELECTOR = '#inputUserName';
    const PASSWORD_SELECTOR = '#inputPassword';
    const BUTTON_SELECTOR = 'body > div > ng-view > form > div:nth-child(3) > button';

    await page.click(USERNAME_SELECTOR);
    await page.keyboard.type(CREDS.username);

    await page.click(PASSWORD_SELECTOR);
    await page.keyboard.type(CREDS.password);

    await page.click(BUTTON_SELECTOR);
    await page.waitForNavigation();
    const title = await page.title();
    expect(title).toBe("Example Website");
  });
})

Я получаю ошибку:

console.assert node_modules/puppeteer/lib/FrameManager.js:597
    AssertionError [ERR_ASSERTION]: No node found for selector: #inputUserName

FAIL __tests__/login.test.js
  Login & Title
    ✕ Test for Page Title (513ms)

  ● Login & Title functionality.. › Test for Page Title

    TypeError: Cannot read property 'click' of null

      at Frame.click (node_modules/puppeteer/lib/FrameManager.js:598:18)

Любойуказатели или помощь будет здорово!Заранее спасибо.

...