Playwright
test.describe("name", () => {
test("name", async ({ context, page, baseURL }) => {
Setup, Visit, Act, and Assert
});
});
| Visit a page |
await page.goto("url")
|
| Reload page |
await page.reload()
|
| Take a Screenshot |
await page.screenshot({ path: filename})
await page.screenshot({ path: filename, fullPage: true})
await element.screenshot({ path: filename})
|
Queries
| Text Input |
await page.fill("input[name=name]",
"value")
await
expect(page.locator("input[name=name]")).toHaveValue(regex)
|
| Textarea |
await page.fill("textarea[name=name]",
"value")
await
expect(page.locator("textarea[name=name]").toHaveValue(regex)
|
| File Input |
await page.setInputFiles("input[name=name]",
[filepath]);
|
| Select Input |
await page.selectOption("select[name=name]", {
label: "label"})
|
| Checkbox and Radio |
await page.check("input[name=name]")
await page.uncheck("input[name=name]")
expect(await
page.isChecked("input[name=name]")).toBeTruthy()
|
| Submit button |
await page.click("button[type=submit]")
|
| Everything else |
await page.locator("[data-testid=testId]")
await page.locator('text="text"')
|
Local and Session Storage
await context.addInitScript(arg => {
window.localStorage.setItem("key", "value");
window.sessionStorage.setItem("key", "value");
}, arg);
Intercepting HTTP Requests
await page.route(url, (route, request) => {
You can also check request data: request.url() or request.postDataJSON()
return route.fulfill({
status: 200,
body: data
});
});