Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

BDD Tests are failing due to Chrome session not being able to create on CI pipeline

Offen
#3,094 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
25/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
docker, github-actions, javascript, node.js
Bereich
ci-cd, testing-qa

Rechercherichtung

Beginne mit workflow.yml und den WebDriver-Einstellungen in test.codecept.conf.js; führe den gezeigten Befehl npx codeceptjs aus und untersuche die Start- und Session-Erstellungsprotokolle des hub/chrome-Dienstes. Als erledigt gilt die Aufgabe, wenn der CI-Lauf @store eine Chrome-Session erstellt und die Checkout-Verifizierung ohne das WebDriver-Timeout abschließt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

stale
What are you trying to achieve?

Running tests successfully on our GitHub action Runner : ubuntu-latest container. It was working all good but broke 8 days ago (14th oct 2021)

I tried investigating & observed both this docker images are updated on same date, but reverting them back to older version selenium/hub:: 3.141 & selenium/node-chrome:93.0 didn't helped, got same error attached below

hub:
        image: selenium/hub:latest
      chrome:
        image: selenium/node-chrome:latest

Note : Tests run fine on local machine with same configuration running on CI pipeline.

What do you get instead?

Checkout page verification on Store --
[1] Starting recording promises
**Verifying checkout page - Annual, prepaid @store
[1] Error | Error: Can't connect to WebDriver.
Error: Failed to create session.
Timeout awaiting 'request' for 120000ms

Please make sure Selenium Server is running and accessible
Error: Can't connect to WebDriver.
Error: Failed to create session.
Timeout awaiting 'request' for 120000ms**

Please make sure Selenium Server is running and accessible
Given I am on test site
I am on page "/"
[1] Error | TypeError: Cannot read property 'url' of undefined
[1] Error | TypeError: Cannot read property 'url' of undefined
[1] Error | TypeError: Cannot read property 'url' of undefined
[1] Starting session
[1] Stopping recording promises
› Test failed, try to save a screenshot
› Screenshot has been saved to /__w/web-project-ui-automation-test-framework/web-project-ui-automation-test-framework/output/Verifying__d2382720-3a95-4e87-a5d9-466410c33dc3.failed.png
› <TypeError: Cannot read property 'saveScreenshot' of undefined>
✖ FAILED in 14ms

Provide test source code if related

workflow.yml

name: Build & Test

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

jobs:
  build:
    runs-on: ubuntu-latest
    container:
      image: node:14.4
      options: --network-alias testHost
    env:
      NODE_ENV: test
      SELENIUM_HUB_HOST: hub
      TEST_HOST: testHost

    services:
      hub:
        image: selenium/hub:latest
      chrome:
        image: selenium/node-chrome:latest
        env:
          HUB_HOST: hub
          HUB_PORT: 4444

    strategy:
      matrix:
        node-version: [14.4]

    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
          registry-url: 'https://npm.pkg.github.com'
          scope: '@xyz-technologies'
      - name: NPM install
        run: npm install
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_PAT }}
      - name: Run Store Tests
        run: npx codeceptjs run --grep @store --reporter mocha-multi --profile https://store.xyz.com/ --config test.codecept.conf.js
      - name: Archive mochawesome Test Report
        if: ${{ always() }}
        uses: actions/upload-artifact@v2
        with:
          name: mochawesome-test-report
          path: ./output
Details
  • CodeceptJS version: "3.1.2",
  • NodeJS Version: 14.4
  • Operating System: Linux ubuntu-latest
  • puppeteer || webdriverio || testcafe version (if related) webdriverio
  • Configuration file:
const { setHeadlessWhen } = require('@codeceptjs/configure');
const { WAIT_FOR } = require('../constants');
const {
  CheckElementPresenceHelper,
  VisualTestingHelper,
  RelativePathResembleHelper,
} = require('../helpers/index');

require('dotenv').config();

setHeadlessWhen(process.env.CI);

exports.config = {
  output: './output',
  timeout: WAIT_FOR.STEP, // applies to a single step definition, which should not take longer to run, than specified
  helpers: {
    CheckElementPresenceHelper,
    VisualTestingHelper,
    assertWrapper: {
      require: require.resolve('codeceptjs-assert'),
    },
    WebDriver: {
      browser: 'chrome',
      url: process.env.profile,
      coloredLogs: true,
      show: true,
      restart: true,
      host: process.env.host || 'hub',
      waitForTimeout: WAIT_FOR.ELEMENT, // wait for the element to reach the state (enabled, existing)
      timeouts: {
        pageLoad: WAIT_FOR.PAGE, // wait for the page loading to complete
      },
      smartWait: WAIT_FOR.IMPLICIT, // implicit wait set, when searching for a specific single element, is disables in all other cases (will wait for additional 5 sec)
      desiredCapabilities: {
        'goog:chromeOptions': {
          args: [
            '--disable-gpu',
            '--window-size=1500,1300',
            '--no-sandbox',
            '--disable-extensions',
            '--dns-prefetch-disable',
            '--disable-dev-shm-usage',
          ],
        },
      },
    },
    ResembleHelper: {
      require: RelativePathResembleHelper.require,
      screenshotFolder: './output/',
      relativeToHtmlScreenshotFolder: './',
      baseFolder: './output/tests/screenshots/base/',
      diffFolder: './output/tests/screenshots/diff/',
      relativeToHtmlBaseFolder: './tests/screenshots/base/',
      relativeToHtmlDiffFolder: './tests/screenshots/diff/',
    },
    Mochawesome: {
      uniqueScreenshotNames: 'true',
    },
  },
  mocha: {
    reporterOptions: {
      'codeceptjs-cli-reporter': {
        stdout: '-',
        options: {
          verbose: true,
          steps: true,
          debug: true,
        },
      },
      mochawesome: {
        stdout: './output/console.log',
        options: {
          steps: true,
          reportDir: './output',
          json: false,
          reportFilename: 'Automated_Test_Run_Report',
          inlineAssets: 'true',
          saveHtml: 'true',
          overwrite: 'true',
        },
      },
    },
  },
  bootstrap: null,
  teardown: null,
  hooks: [],
  gherkin: {
    features: './features/*.feature', // feature files location
    steps: './steps/*.js', // step definitions location
  },
  plugins: {
    screenshotOnFail: {
      enabled: true, // if true take screenshot of failed scenarios
      fullPageScreenshots: false,
    },
    retryFailedStep: {
      enabled: true, // if true rerun failed tests
      retries: 2,
      ignoredSteps: ['compareActualAndBaseScreenshots'],
    },
  },
  rerun: {
    // run 4 times until 1st success
    minSuccess: 1,
    maxReruns: 2,
  },
  name: 'codeceptTest',
};

Please suggest what could be wrong..

Vorherrschende Sprache
JavaScript
Sterne
4.2k
Forks
756
Ø Merge
2 T. 9 Std.
Gemergte PRs (30 T.)
16

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus codeceptjs/CodeceptJS

Alle Issues in codeceptjs/CodeceptJS

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.