TestCafe v1.7.0 Release Notes

Release Date: 2019-11-21 // 18 days ago
  • v1.7.0 (2019-11-21)

    ✨ Enhancements

    🍱 ⚙️ Identify the Browser and Platform in Test Code (#481)

    ✅ TestCafe now allows you to obtain information about the current user agent. These data identify the operating system, platform type, browser, engine, etc.

    📚 Use the t.browser property to access user agent data.

    import { Selector } from 'testcafe'; fixture `My fixture` .page `https://example.com`;test('My test', async t =\> { if (t.browser.name !== 'Chrome') await t.expect(Selector('div').withText('Browser not supported').visible).ok(); });
    

    📚 The t.browser object exposes the following properties:

    Property Type Description Example
    📚 alias String The browser alias string specified when tests were launched.
    📚 name String The browser name.
    📚 version String The browser version.
    📚 platform String The platform type.
    📚 headless Boolean true if the browser runs in headless mode.
    📚 os Object The name and version of the operating system.
    📚 engine Object The name and version of the browser engine.
    📚 userAgent String The user agent string.
    📚 prettyUserAgent String Formatted string with the browser's and operating system's name and version.

    📚 The following example shows how to create a beforeEach hook that runs for specific browser engines.

    import { Selector } from 'testcafe'; fixture `My fixture` .page `https://example.com` .beforeEach(async t =\> { if (t.browser.engine.name === 'Blink') return; // ... });
    

    📚 You can also use t.browser to generate the screenshot path based on the browser name. This prevents screenshots taken with t.takeElementScreenshot in different browsers from being overwritten.

    import { Selector } from 'testcafe'; fixture `My fixture` .page `https://example.com`;test('My test', async t =\> { const loginButton = Selector('div').withText('Login'); await t.takeElementScreenshot(loginButton, `auth/${t.browser.name}/login-button.png`); });
    

    📚 For more information and examples, see Identify the Browser and Platform.

    🐛 Bug Fixes

    • 🛠 Fixed an error on pages that submit forms immediately after loading (#4360 by @bill-looby-i)
    • ✅ TestCafe now scrolls to elements located inside Shadow DOM roots (#4222)
    • 🛠 Fixed an error that occurred when TypeScripts tests that use Node.js globals were run with TestCafe installed globally (#4437)
    • 🛠 Fixed the TypeScript definition for the Selector.withAttribute method's return type (#4448)
    • 🛠 Fixed an issue when custom browser providers could not take screenshots (#4477)
    • 👌 Support pages that use advanced ES6 module export (testcafe-hammerhead/#2137)
    • 🛠 Fixed compatibility issues with Salesforce Lightning Web Components (testcafe-hammerhead/#2152)

Previous changes from v1.7.0-rc.1