Skip to content

Releases: DevExpress/testcafe

v3.3.0-rc.1

23 Aug 09:52
d26cb24
Compare
Choose a tag to compare
v3.3.0-rc.1 Pre-release
Pre-release

What’s Changed

v3.2.0

17 Aug 17:11
e59b5f6
Compare
Choose a tag to compare

TestCafe v3.2.0 Released

TestCafe v3.2.0 allows you to check whether TestCafe uses native automation to control the browser.

Check your native automation status

The nativeAutomation property of the t.browser object indicates whether TestCafe uses native automation to control the browser. The property's value is true when TestCafe uses native automation and false when TestCafe uses the Hammerhead proxy.

You can check the browser's native automation status before you start the test:

import { Selector } from 'testcafe';

fixture`TestController.browser`
    .page`https://example.com`;

test('Native automation check', async t => {
    await t.expect(t.browser.nativeAutomation).ok();
    //the test continues only if you use native automation
});

Bug Fixes

  • TestCafe uses a version of the error-stack-parser package that contains a vulnerable dependency (PR #7919 by @sethidden).
  • TestCafe does not clear cookie storage if a Role activation URL is the same as the page URL (#7874).
  • [Native Automation] TestCafe incorrectly processes web pages with file inputs (#7886).

v3.2.0-rc.2

17 Aug 08:48
cfbc184
Compare
Choose a tag to compare
v3.2.0-rc.2 Pre-release
Pre-release

What’s Changed

v3.2.0-rc.1

16 Aug 10:08
Compare
Choose a tag to compare
v3.2.0-rc.1 Pre-release
Pre-release

What’s Changed

v3.1.0

27 Jul 11:05
8df03fe
Compare
Choose a tag to compare

TestCafe v3.1.0 Released

TestCafe v3.1.0 introduces two enhancements:

  • You can now respond to geolocation requests with the t.setNativeDialogHandler method.
  • Your tests and test reports can now reference a variable that stores the framework's version number.

Respond to geolocation requests

Main article: t.setNativeDialogHandler

Use the t.setNativeDialogHandler method to respond to geolocation requests.

  • Return an Error type object to Block geolocation requests.
  • Return an object with coordinates to trigger the success callback of the getCurrentPosition method.
// Test
test('Switch from "allow" to "block"', async t => {
  await t
    .setNativeDialogHandler((type) => {
        if (type === 'geolocation')
            return { timestamp: 12356, accuracy: 20, coords: {latitude: '34.15321262322903', longitude: '-118.25543996370723'}; // Passes this data to geolocation requests
        return null;
    });
    .click('#buttonGeo')
    .setNativeDialogHandler((type) => {
        if (type !== 'geolocation')
            return null;
    
        const err = new Error('Some error');
    
        err.code = 1;
    
        return err; // Blocks geolocation requests
    })
    .click('#buttonGeo');

Reference the framework's version in tests and test reports

Main article: Version Logger API

Earlier versions of TestCafe could output the framework's version number to the console:

CLI version

TestCafe 3.1.0 and up allows you to access the framework's version number in test code:

import { version } from 'testcafe';
console.log(`TestCafe version: ${version}`);

API version

To access the framework's version number in your custom reporter, reference the first argument (version) of the init method:

init (version) {
   this
      .write(`Using TestCafe ${version}`)
      .newline()
}

Bug fixes

  • TestCafe incorrectly reports test duration in concurrency mode (#1816).
  • TestCafe assigns a non-zero duration value to skipped tests, which leads to an unexpected increase in the total test run duration value (#7731).
  • [Native Automation] The setFileUpload method does not work (#7832).
  • [Native Automation] Request hooks cause tests to crash (#7846).
  • [Native Automation] TestCafe overrides page titles (#7833).
  • [Native Automation] If a website redirects the user to a new page before basic HTTP authentication is complete, the authentication process fails (#7852).
  • [Native Automation] The t.click action fails if the event handler accounts for pointer input pressure (#7867).
  • [Native Automation] TestCafe hangs when the browser yields a "Session with given ID not found" error (#7865,#7810).
  • [Native Automation] TestCafe cannot set the httpOnly flag when you use the t.setCookies method (#7793).

v3.1.0-rc.3

24 Jul 15:32
c6ce120
Compare
Choose a tag to compare
v3.1.0-rc.3 Pre-release
Pre-release

What’s Changed

v3.1.0-rc.2

21 Jul 07:56
6ce7404
Compare
Choose a tag to compare
v3.1.0-rc.2 Pre-release
Pre-release

What's Changed

Full Changelog: v3.0.1...v3.1.0-rc.2

v3.0.1

29 Jun 11:45
7ad8aa5
Compare
Choose a tag to compare

v3.0.1 (2023-06-29)

Bug fixes

  • The TestCafe status bar overlaps page elements, which leads to test execution issues (#7797)
  • TestCafe outputs an unhelpful warning message when it cannot apply the artifact path template (#7256)
  • A bug in the testcafe-browser-tools package causes TestCafe tests to hang on Ubuntu (#7752)

v3.0.0

21 Jun 12:53
814c7d7
Compare
Choose a tag to compare

Introducing TestCafe v3.0.0

This major update includes two breaking changes:

  • TestCafe v3.0.0 uses native CDP automation to run tests in Chromium-based browsers.
  • TestCafe v3.0.0 removes support for Internet Explorer.

Other changes include:

  • You can now access test and fixture data in hooks.
  • You can now dismiss the print dialog with the native dialog handler.

Native automation

TestCafe v2.5.0 introduced an experimental mode that allows users to automate Chromium-based browsers, such as Google Chrome and Microsoft Edge, with the native CDP protocol. TestCafe v3.0.0 and up enables this capability out of the box.

Native automation increases test quality, stability, and speed.

Access Test and Fixture data in hooks

You can now access the following data in fixture hooks (fixture.before, fixture.after) :

  • Fixture name
  • Fixture metadata
  • Fixture path

Test hooks (fixture.beforeEach, fixture.afterEach, test.before, test.after) can access fixture data and the following test data:

  • Test name
  • Test metadata
fixture `Example Fixture`
    .page `http://example.com`
    .meta({ fixtureMeta: 'v' })
    .before( async (ctx, info) => {
        const fixtureName = info.name; /* Example Fixture */
        const fixtureMeta = info.meta; /* { fixtureMeta: 'v' } */
        const fixturePath = info.path /* /Users/dan/testcafe/fixture.js */
    });
    .beforeEach( async t => {
        const fixtureName = t.fixture.name; /* Example Fixture */
        const fixtureMeta = t.fixture.meta; /* { fixtureMeta: 'v' } */
        const fixturePath = t.fixture.path /* /Users/dan/testcafe/fixture.js */
        const testName = t.test.name; /* MyTest */
        const testMeta = t.test.meta; /* { 'key': 'value' } */
})

Read the Hooks guide for more information.

Dismiss the print dialog

You can now use the t.setNativeDialogHandler method to dismiss the print dialog.

Removed: Internet Explorer support

TestCafe v3.0.0 removes support for Internet Explorer 11, six months after the browser's official retirement. The browser came out more than 9 years ago, and has a worldwide market of less than 0.5%. It is survived by Edge, a popular Chromium-based browser that ships with modern versions of Windows.

Bug fixes

  • Some client functions yield a fatal error when the test navigates to a new page or removes an iframe (#7707).
  • TestCafe fails to correctly modify certain request headers when it uses native automation (#7748).
  • A bug in the CDP protocol causes TestCafe to incorrectly process request hooks (#7743).
  • TestCafe outputs a vague error message if the framework fails to read or process the configuration file (#7208, #6437).
  • TestCafe cannot select content with the "Ctrl+A" shortcut when the framework uses native automation (#7667).
  • The Monaco editor does not display code completion hints when TestCafe automates it with CDP #7770.

v3.0.0-rc.2

15 Jun 15:14
a90ad70
Compare
Choose a tag to compare
v3.0.0-rc.2 Pre-release
Pre-release

What’s Changed