TestCafe v1.7.0 Release Notes
Release Date: 2019-11-21 // over 4 years 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)