QAW_ARTIFACT_PATH=/tmp/testArtifacts/ DEBUG=pw:api BASE_URL=<my_url> yarn qawolf test absoluteDaysSaveCorrectly
@/all we are “soft-launching” QA Wolf 2.0 next week. There are a ton of improvements: much better test creation experience, improved video recording, easier to set up in CI. However we are working on filling in some missing features and adding documentation.
I want to learn from you all what we need to build before we replace 1.0 and release it officially. If you are interested in trying it out lets schedule a time and I will give you access https://calendly.com/jperl/60min
Hi. I'm facing a small issue with my GitLab ci config and I thought maybe someone from here would be able to help me. I have multiple tests (different files) with await page.waitForTimeout. The files have different timeout values, basically I need to wait on different website if our single sign on solution logs out automaticaly the user. My problem is that if I have for example 3 tests, if the first test success the job/pipeline will close and it will not wait for the others to finish as well.qawolf:
image: qawolf/playwright-ci:v1.0.0
script:
- npm install
- npx qawolf test --headless
variables:
QAW_ARTIFACT_PATH: $CI_PROJECT_DIR/artifacts
artifacts:
when: always
paths:
- $CI_PROJECT_DIR/artifacts
expire_in: 1 week
File.test.js -> Example
const qawolf = require("qawolf");
let browser;
let context;
beforeAll(async () => {
browser = await qawolf.launch();
context = await browser.newContext();
await qawolf.register(context);
});
afterAll(async () => {
await qawolf.stopVideos();
await browser.close();
});
test("After 45 minutes I should still be logged in CIM", async () => {
const page = await context.newPage();
await page.goto("https://xxxxxxxxxxxxxxxxxx/", { waitUntil: "domcontentloaded" });
await page.check('"Normal"');
await page.click(".primary");
await page.click(".switcher");
await page.click('[aria-label="Username"]');
await page.fill('[aria-label="Username"]', "xxxxxxxxxxxx");
await page.click("#password");
await page.fill("#password", "xxxxxxx");
await page.click(".submit");
await page.waitForTimeout(2700000);
const url = await page.url();
expect(url).toEqual(expect.stringContaining('test-sso..com'));
});
Hi. I'm facing a small issue with my GitLab ci config and I thought maybe someone from here would be able to help me. I have multiple tests (different files) with await page.waitForTimeout. The files have different timeout values, basically I need to wait on different website if our single sign on solution logs out automaticaly the user. My problem is that if I have for example 3 tests, if the first test success the job/pipeline will close and it will not wait for the others to finish as well.
qawolf:
image: qawolf/playwright-ci:v1.0.0
script:
- npm install
- npx qawolf test --headless
variables:
QAW_ARTIFACT_PATH: $CI_PROJECT_DIR/artifacts
artifacts:
when: always
paths:
- $CI_PROJECT_DIR/artifacts
expire_in: 1 week
File.test.js -> Example
const qawolf = require("qawolf");let browser;
let context;beforeAll(async () => {
browser = await qawolf.launch();
context = await browser.newContext();
await qawolf.register(context);
});afterAll(async () => {
await qawolf.stopVideos();
await browser.close();
});test("After 45 minutes I should still be logged in CIM", async () => {
const page = await context.newPage();
await page.goto("https://xxxxxxxxxxxxxxxxxx/", { waitUntil: "domcontentloaded" });
await page.check('"Normal"');
await page.click(".primary");
await page.click(".switcher");
await page.click('[aria-label="Username"]');
await page.fill('[aria-label="Username"]', "xxxxxxxxxxxx");
await page.click("#password");
await page.fill("#password", "xxxxxxx");
await page.click(".submit");
await page.waitForTimeout(2700000);
const url = await page.url();
expect(url).toEqual(expect.stringContaining('test-sso..com'));
});
I found the culprint, our shared runners had timeouts setted at 30 min.....
--load-extension=
as a an arg to launch. This is all about to change in 2.0 though that we are releasing this month
TimeoutError: frame.check: Timeout 3000ms exceeded.
=========================== logs ===========================
waiting for selector "#chkAgreement"
selector resolved to visible <input type="checkbox" id="chkAgreement" name="chkAgree…/>
attempting click action
waiting for element to be visible, enabled and not moving
element is visible, enabled and does not move
scrolling into view if needed
done scrolling
checking that element receives pointer events at (147.47,399.98)
<label for="chkAgreement">I agree, I have read and accept the terms and con…</label> intercepts pointer events
retrying click action, attempt #1
waiting for element to be visible, enabled and not moving
element is visible, enabled and does not move
scrolling into view if needed
its failing here:
await frame.check('#chkAgreement', { timeout: 3000 });