Skip to content

Instantly share code, notes, and snippets.

View pablocattaneo's full-sized avatar

Pablo Cattaneo pablocattaneo

View GitHub Profile
test("Dropdown should be sorted in alphabetical order", async ({ page }) => {
await page.goto(PAGE_URL);
const dropdown = page.getByRole("combobox").and(page.locator("#country"));
const options = await dropdown.locator("option").all();
const optionValues = await Promise.all(options.map(option => option.textContent()));
const sortedOptionValues = [...optionValues].sort();
expect(optionValues).toEqual(sortedOptionValues);
});
// adding --headed option
npx playwright test tests/singleSelectDropdown.spec.ts --headed
Selects one or multiple options in the <select> element with locator.selectOption(). You can specify option value, or label to select. Multiple options can be selected.
// Single selection matching the value or label
await page.getByLabel('Choose a color').selectOption('blue');
// Single selection matching the label
await page.getByLabel('Choose a color').selectOption({ label: 'Blue' });
// Multiple selected items
await page.getByLabel('Choose multiple colors').selectOption(['red', 'green', 'blue']);
// list all commit on this file. Also in case of merge or squash it allow to see the commit inside of it
tig path/to/file
// https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-checked
// expect(radioButton).toBeChecked();
test("Radio button actions", async ({ page }) => {
await page.goto("https://testautomationpractice.blogspot.com/");
const radioButton = page.getByRole("radio").and(page.locator("#male"));
await radioButton.check();
await expect(radioButton).toBeChecked();
});
// It is possible using .and locator https://playwright.dev/docs/api/class-locator#locator-and
import { test, expect } from "@playwright/test";
test(" Text input actions", async ({ page }) => {
await page.goto("https://testautomationpractice.blogspot.com/");
const textBox = page.getByRole('textbox').and(page.locator("#name"));
await textBox.fill("Playwright");
await expect(textBox).toHaveValue("Playwright");
});
npx playwright test tests/todo-page.spec.ts
// https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-value
const locator = page.locator('input[type=number]');
await expect(locator).toHaveValue(/[0-9]/);
// you can do that using the toBeEnabled method of the object that returns expect method
import { test, expect } from '@playwright/test';
test('basic test', async ({ page }) => {
await page.goto('https://playwright.dev/');
const inputName = page.locator("#name") // Select element by id
await expect(inputName).toBeEnabled()
});
// you can do that using the toBeVisible method of the object that returns expect method
import { test, expect } from '@playwright/test';
test('basic test', async ({ page }) => {
await page.goto('https://playwright.dev/');
const inputName = page.locator("#name") // Select element by id
await expect(inputName).toBeVisible()
});