Capture d'écran en C # à l'aide de HtmlAgilityPack

c# html-agility-pack

Question

En raison du manque de documentation appropriée, je ne sais pas si HtmlAgilityPack prend en charge la capture d'écran en C # après le chargement du contenu HTML.

Y a-t-il un moyen pour que je puisse plus ou moins prendre une capture d'écran en utilisant (ou avec) HtmlAgilityPack afin que je puisse avoir un indice visuel de ce qui se passe chaque fois que je fais des manipulations de page?

Voici mon code de travail jusqu'à présent:

using HtmlAgilityPack;
using System;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            string urlDemo = "https://htmlagilitypack.codeplex.com/";
            HtmlWeb getHtmlWeb = new HtmlWeb();
            var doc = getHtmlWeb.Load(urlDemo);
            var sentence = doc.DocumentNode.SelectNodes("//p");
            int counter = 1;           
            try
            {
                foreach (var p in sentence)
                {
                    Console.WriteLine(counter + ". " + p.InnerText);
                    counter++;
                }
            }
            catch (Exception e)
            { 
                Console.WriteLine(e);
            }  
            Console.ReadLine();            
        }
    }
}

Actuellement, il efface et affiche tous les p de la page dans la console mais, en même temps, je souhaite obtenir une capture d'écran du contenu effacé, mais je ne sais pas comment et par où commencer.

Toute aide est grandement appréciée. TIA

Réponse populaire

Pourriez-vous utiliser Selenium WebDriver à la place?

Vous devez d'abord ajouter les packages NuGet suivants à votre projet:

Charger une page et prendre une capture d'écran est alors aussi simple que ...

using System;
using System.Drawing.Imaging;
using System.IO;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

namespace SeleniumTest
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a web driver that used Firefox
            var driver = new FirefoxDriver(
                new FirefoxBinary(), new FirefoxProfile(), TimeSpan.FromSeconds(120));

            // Load your page
            driver.Navigate().GoToUrl("http://google.com");

            // Wait until the page has actually loaded
            var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 10));
            wait.Until(d => d.Title.Contains("Google"));

            // Take a screenshot, and saves it to a file (you must have full access rights to the save location).
            var myDesktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            ((ITakesScreenshot)driver).GetScreenshot().SaveAsFile(Path.Combine(myDesktop, "google-screenshot.png"), ImageFormat.Png);

            driver.Close();
        }
    }
}



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi