Skip to content

Chrislee187/Selenium.WebDriver.WaitExtensions

Repository files navigation

More and more (most?) websites these days require asyncronous behavior, either because of AJAX calls to the back end, or, as is becoming more common, the JS presentation/binding/MVVM framework (such as Angular, React, Knockout ) uses asyncronicity to use create a responsive and maintainable user experience.

These solutions often means that simple Selenium test code requires some form of "wait" between executing an action and checking it's results.

The Selenium.WebDriver.Support package offers a WebDriverWait class that offers some waiting support but this can be cumbersome to use to create individual delays for a specific piece of behaviour.

Enter Selenium.WebDriver.WaitExtensions, some simple extension methods to make testing Selenium.WebDriver testing of async behaviour at little nicer and a little less cumbersome.

QUICK EXAMPLES Wait 2500ms for an element to appear in the DOM

var webelement = webdriver.Wait(2500).ForElement(By.Id("dynamicElement").ToExist()

Wait 150ms for a specific class to attach to an element

webelement.Wait(150).ForClass().ToContains("my-new-class")

All checks have an Opposite 'Not' check i.e ToExist()/ToNotExist()

WebDriverTimeoutException thrown when timeout is reached

There are several "waits" available for WebElements including;

`ForClass()` to check for changes to the 'class' attribute of the element

`ForText()` to check for changes to the 'text' attribute of the element

`ForAttribute()` to check for changes to individual attributes of the element

`ForElement()` to check for element level property changes, such as 'disabled', 'displayed' & selected

`ForPage()` to check for page level changes such as Url, Title, document.readyState


See the Tests for complete examples

About

Extension to make using Selenium WebDriverWait's easier

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published