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!