1
resposta

Obter um arquivo em bytes

Estou aplicando o que estou apresendo nesse curso em um projeto que acessa uma determinada pagina e navega até chegar no menu que possibilita o download de um arquivo xml. Minha dificudade está em obter esse arquivo para download em byte porém sem clicar em download. Preciso armazenar esse arquivo em uma pasta especifica da unidade c: Alguem poderia me ajudar com essa duvida?

1 resposta

Olá, Andrey

Uma maneira de fazer isso é utilizando a biblioteca Selenium WebDriver para navegar até a página que contém o botão de download e, em seguida, utilizar a classe HttpClient para fazer uma requisição HTTP e obter o arquivo em bytes.

Aqui está um exemplo de como você pode fazer isso em C#:

using System;
using System.IO;
using System.Net.Http;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace SeuProjeto
{
    class Program
    {
        static void Main(string[] args)
        {
            // Inicializa o WebDriver
            IWebDriver driver = new ChromeDriver();

            // Navega até a página que contém o botão de download
            driver.Navigate().GoToUrl("https://exemplo.com/pagina-de-download");

            // Encontre o elemento do botão de download
            IWebElement botaoDownload = driver.FindElement(By.Id("id-do-botao-de-download"));

            // Obtenha a URL do arquivo a ser baixado
            string urlDownload = botaoDownload.GetAttribute("href");

            // Use o HttpClient para fazer a requisição HTTP e obter o arquivo em bytes
            using (HttpClient client = new HttpClient())
            {
                byte[] arquivoBytes = client.GetByteArrayAsync(urlDownload).Result;

                // Salve o arquivo em uma pasta específica da unidade C:
                string caminhoArquivo = @"C:\caminho\para\o\arquivo.xml";
                File.WriteAllBytes(caminhoArquivo, arquivoBytes);
            }

            // Feche o WebDriver
            driver.Quit();

            Console.WriteLine("Arquivo baixado com sucesso!");
        }
    }
}

Lembre-se de substituir a URL da página de download e o ID do botão de download pelos valores corretos do seu projeto.

Espero que isso ajude! Se tiver mais alguma dúvida, é só me dizer.

Espero ter ajudado e bons estudos!