The full title path starting with the test file name, including the step titles. See also testInfo.titlePath.
Attach a value or a file from disk to the current test step. Some reporters show test step attachments. Either
path or
body must be specified,
but not both. Calling this method will attribute the attachment to the step, as opposed to
testInfo.attach(name[, options]) which stores
all attachments at the test level.
For example, you can attach a screenshot to the test step:
import { test, expect } from '@playwright/test';
test('basic test', async ({ page }) => {
await page.goto('https://playwright.dev');
await test.step('check page rendering', async step => {
const screenshot = await page.screenshot();
await step.attach('screenshot', { body: screenshot, contentType: 'image/png' });
});
});
Or you can attach files returned by your APIs:
import { test, expect } from '@playwright/test';
import { download } from './my-custom-helpers';
test('basic test', async ({}) => {
await test.step('check download behavior', async step => {
const tmpPath = await download('a');
await step.attach('downloaded', { path: tmpPath });
});
});
NOTE testStepInfo.attach(name[, options]) automatically takes care of copying attached files to a location that is accessible to reporters. You can safely remove the attachment after awaiting the attach call.
Attachment name. The name will also be sanitized and used as the prefix of file name when saving to disk.
Optional options: { Optional
Optional body?: string | BufferAttachment body. Mutually exclusive with
path.
Optional contentContent type of this attachment to properly present in the report, for example 'application/json' or
'image/png'. If omitted, content type is inferred based on the
path, or defaults to
text/plain for [string] attachments and application/octet-stream for [Buffer] attachments.
Optional path?: stringPath on the filesystem to the attached file. Mutually exclusive with
body.
Abort the currently running step and mark it as skipped. Useful for steps that are currently failing and planned for a near-term fix.
Usage
import { test, expect } from '@playwright/test';
test('my test', async ({ page }) => {
await test.step('check expectations', async step => {
step.skip();
// step body below will not run
// ...
});
});
Conditionally abort the currently running step and mark it as skipped with an optional description. Useful for steps that should not be executed in some cases.
Usage
import { test, expect } from '@playwright/test';
test('my test', async ({ page, isMobile }) => {
await test.step('check desktop expectations', async step => {
step.skip(isMobile, 'not present in the mobile layout');
// step body below will not run
// ...
});
});
A skip condition. Test step is skipped when the condition is true.
Optional description: stringOptional description that will be reflected in a test report.
Optional Generated using TypeDoc
TestStepInfocontains information about currently running test step. It is passed as an argument to the step function.TestStepInfoprovides utilities to control test step execution.