Explicit Waits FluentWaits in Selenium C#
we call them explicit waits because they applied to await conditions. Also, each explicit holdout is different from the other one in the core waiting for logic.
We will solve this problem using pursuing waits
Explicit waits fluent waits selenium C-Sharp
The mentioned two waits, generally speaking, the explicit waits, are smart waits. They called smart because they don't wait for the max periods. Instead, it waits for the time till the problem specified in .until method becomes true.
Once the until method named, pursuing things happen in this sequence
1: This smart/explicit wait captures the delay start time.
2: Smart/Explicit wait around checks the problem that mentioned in the .until() method
3: If the problem is not attained. a thread rest applied with time from the value in the .pollingInterval property call. Inside the example above it is 250 milliseconds.
4: After the thread sleeping of step three 3 expires, the of start time made with the current time.
This process retains ongoing on till enough time either timeout expires or the condition comes out to be true. The important point here's waiting around condition evaluated after the end of polling time duration. So we don't already have to wait for the complete timeout.
WebDriverWait is present in the OpenQA.Selenium.Support.UI namespace. This holdout is a particular form of DefaultWait category. We will discuss DefaultWait in the next section. Here the complete logic of wait encapsulated inside the Func delegate. which is present in System namespace. We must cross Func delegate to the WebDriverWait.until method.
Func delegate like this Func<Type1, Type2>. where Type1 is the source parameter and Type2 is the output parameter. WebDriverWait tied to WebDriver, hence Type1 will always add up to WebDriver and Type2. which does the comeback type whatever want.
The default delay is more universal put it off in the sense that it's not destined to WebDriver. This wait around used to pass in an object to hold back on. Let's make an effort to solve the above problem via DefaultWait now.