79376572

Date: 2025-01-22 05:09:53
Score: 0.5
Natty:
Report link

My two cents to the answer by @Loudenvier

In some cases we will be using FindElement method of another IWebElement. Here is the implementation to add timeout to this method

public static IWebElement FindElement(this IWebElement element, By by, int timeoutInSeconds)
{
    if (timeoutInSeconds > 0)
    {
        var driver = GetDriverFromElement(element);
        var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
        return wait.Until(drv => drv.FindElement(by));
    }
    return element.FindElement(by);
}
private static IWebDriver GetDriverFromElement(IWebElement element)
{
    var wrappedElement = element as IWrapsDriver;
    return wrappedElement?.WrappedDriver ?? throw new InvalidOperationException("Cannot get driver from the element.");
}
Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • User mentioned (1): @Loudenvier
  • Low reputation (0.5):
Posted by: Extreme_Tough