How can I use PlaywrightSharp in C# to wait for a web element to appear or disappear?


Waiting for Web Elements with PlaywrightSharp in C#

First, you need to install the PlaywrightSharp NuGet package. Run this command in your project directory:

dotnet add package PlaywrightSharp

Then, create a new Playwright instance and launch a browser:

using var playwright = await Playwright.CreateAsync();
using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();

To wait for an object to appear on the page, use the WaitForSelectorAsync method. This method takes a CSS selector string and an optional timeout value (in milliseconds):

await page.GoToAsync("https://ray.run");
var elementHandle = await page.WaitForSelectorAsync("#my-element", timeout: 5000);

Here, we're waiting for an element with ID "my-element" to appear on the page within 5 seconds. The WaitForSelectorAsync method returns an ElementHandle, which represents the DOM element matching our selector.

If you want to wait for an object to disappear from the page, pass { state: "hidden" } as options:

await page.GoToAsync("https://ray.run");
await page.WaitForSelectorAsync("#my-element", new WaitForStateOptions { State = WaitForState.Hidden });

This waits until there are no longer any visible or attached elements matching our selector. Using Playwright's built-in waiting methods like WaitForSelectorAsync ensures that your automation scripts only interact with objects that are actually present on the web page.


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 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.