Ejemplo n.º 1
0
        /// <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));
        }
Ejemplo n.º 2
0
        /// <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;
        }