-
-
Notifications
You must be signed in to change notification settings - Fork 747
Description
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..