You can use Playwright's API testing feature to log in using a POST request. Here's how:
First, navigate to the login page using the page.goto()
method:
await page.goto('https://ray.run/login');
Next, fill in the username and password fields. You can use the page.getByLabel().fill()
method for this:
await page.getByLabel('Username').fill('your_username');
await page.getByLabel('Password').fill('your_password');
Then, click on the "Sign in" button:
await page.getByRole('button', { name: 'Sign in' }).click();
Now, wait until the page receives cookies. You can use page.waitForURL()
to wait for the final URL:
await page.waitForURL('https://ray.run/dashboard');
Alternatively, wait until a certain element is visible on the page:
await expect(page.getByRole('navigation')).toBeVisible();
Finally, save all cookies into a file for later use:
await page.context().storageState({ path: 'cookies.json' });
And that's it! You've just logged in using a POST request instead of the UI. For more details, check out API testing using Playwright.
If you still have questions, please ask a question and I will try to answer it.
Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email [email protected].