/// <summary> /// Wait for all Angular pending AJAX requests to complete /// </summary> /// <param name="secondsToWait">The duration after which to stop waiting.</param> public static void WaitForAngular(int secondsToWait = 30) { if (browser == null) { return; } if (browser.IsDisposed) { return; } if (browser.IsClosed) { return; } if (!browser.CanGetUrl()) { return; } if (!browser.Url.StartsWith("http", StringComparison.Ordinal)) { return; } var timeout = TimeSpan.FromSeconds(secondsToWait); var waitInterval = TimeSpan.FromMilliseconds(500); var waiter = new Waiter(timeout, waitInterval); try { waiter.WaitFor( () => { var pendingRequests = GetAngularPendingRequestCount(); if (pendingRequests <= 0) { return(true); } LogDebug( () => string.Format( " (WebDriverSupport.WaitForAngular: {0} pending requests)", pendingRequests)); return(false); }); } catch (TimeoutException) { throw new ElementExecuteException("Angular pending requests not completed within {0}", timeout); } }
public void CanGetUrl_ReturnsTrue() { // Arrange CodedUIBrowserFactory browserFactory = new CodedUIBrowserFactory(); // Act IBrowser browser = browserFactory.GetBrowser(); // Assert Assert.IsTrue(browser.CanGetUrl()); }