/// <summary> /// Adds the link. /// </summary> /// <param name="url">The parent URL.</param> /// <param name="result">The result.</param> /// <param name="nextLink">The next link.</param> private static void AddLink( Uri url, NavigateResult result, HtmlNode nextLink) { string uriString = GetValidUriString(nextLink); if (string.IsNullOrEmpty(uriString)) { return; } var rawUrl = new Uri(uriString, UriKind.RelativeOrAbsolute); var nextUrl = rawUrl; if (!rawUrl.IsAbsoluteUri) { nextUrl = new Uri(url, rawUrl); } result.AddLink(new HyperLink(nextUrl, url)); }
/// <summary> /// Navigates to the given URL. /// </summary> /// <param name="url">The URL to navigate to.</param> /// <returns>The navigate result.</returns> public NavigateResult NavigateTo(Uri url) { var result = new NavigateResult(); var stopwatch = new Stopwatch(); stopwatch.Start(); this.browser.GoTo(url); stopwatch.Stop(); result.StatusCode = this.browser.StatusCode; result.LoadTime = stopwatch.Elapsed; result.Images = this.browser.Images.Count; result.HtmlLength = this.browser.Html.Length; result.DocumentElements = this.browser.Elements.Count; foreach (var link in this.browser.Links) { if (string.IsNullOrEmpty(link.Url)) { continue; } result.AddLink(new HyperLink(new Uri(link.Url), url)); } return result; }