What is the best practice to wait for a specific text to appear on the page in Playwright?


Waiting for Text to Appear in Playwright

In Playwright, you can wait for specific text to appear on a webpage using its built-in auto-waiting functionality and web first assertions.

Auto-Waiting and Actionability Checks

Playwright performs actionability checks before executing actions. For example, when you use the page.click() method, Playwright ensures that the element is attached to the DOM, visible, stable, receives events, and is enabled.

await page.click('#myButton');

Web First Assertions

To wait for specific text to appear, use web first assertions like toBeVisible(). This assertion waits until the expected condition is met.

await expect(page.getByText('welcome')).toBeVisible();

Avoid using manual assertions that are not awaiting expect. For example, don't use expect(await page.getByText('welcome').isVisible()).toBe(true), which doesn't wait and immediately returns whether or not the locator is there.


Playwright also provides debugging capabilities for local debugging. You can debug your tests live in VSCode by installing the VS Code extension and running tests in debug mode. This allows you to set breakpoints and interactively debug your test code while it runs in a browser window.

In summary, to wait for a specific text to appear in Playwright, utilize auto-waiting, actionability checks, and web first assertions. Avoid manual assertions without awaiting expect and take advantage of debugging features in VSCode for local debugging.

For more tips on writing efficient Playwright tests, check out this blog post.


Thank you!
Was this helpful?
Still have questions?

If you still have questions, please ask a question and I will try to answer it.

Related Discord Threads

Related Questions

AboutQuestionsDiscord ForumBrowser ExtensionTagsQA Jobs

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 luc@ray.run.