/// <summary> /// Dynamic switching with the help of window handles and element /// </summary> /// <param name="webActions"></param> /// <param name="locater"></param> public static void SwitchToWindowWithElement(this WebActions webActions, By locater) { bool found = false; int counter = 0; reAttempt: IReadOnlyCollection <string> allHandles = webActions.GetWindowHandles(); foreach (string handle in allHandles) { webActions.SwitchToWindow(handle); if (webActions.IsElementPresent(locater)) { found = true; break; } } if (!found && counter < 3) { goto reAttempt; } }