Я пытаюсь создать автоматизированную среду тестирования, используя specflow и selenium, и мне нужно передать основную c auth, а также информацию заголовка x-forwarded-for в браузер для некоторых тестов. Я вижу решения для браузера Browser Mobi, но кажется, что этот проект мертв. Я пытался использовать Titanium Proxy, но у меня было немало времени, чтобы заставить его работать. В основном у меня возникают проблемы с пониманием того, что мне нужно делать с сертификатами, чтобы мой веб-драйвер использовал прокси-сервер и загружал сайты без суеты. В настоящее время я не могу заставить его открывать http или https сайты. Когда я запускаю свой тестовый пример, я вижу, что браузер правильно настраивает прокси, поэтому я не думаю, что это так. Я оставил закомментированный код для вещей, которые я пытался сделать, чтобы установить сертификат, но я не уверен на 100%, что я на самом деле там делаю. Любая помощь будет оценена. В качестве альтернативы, если есть лучший, более простой способ добавить заголовки к запросу, я весь слух.
public class ProxyService
{
private ProxyServer server;
public int port { get; }
public ProxyService(int port)
{
this.server = new ProxyServer();
//server.CertificateManager.CreateServerCertificate("rootCert.pfx");
//server.CertificateManager.LoadRootCertificate();
//server.CertificateManager.CertificateEngine = Titanium.Web.Proxy.Network.CertificateEngine.BouncyCastle;
//server.CertificateManager.TrustRootCertificate(true);
//server.CertificateManager.EnsureRootCertificate(true,true,false);
this.port = port;
}
public void AddHeader(string key, string value)
{
}
private async Task OnRequest(object sender, SessionEventArgs e) => await Task.Run(
() =>
{
e.HttpClient.Request.Headers.AddHeader("Authorization", "Basic xxxxxxxxxx");
});
public void Start()
{
var endpoint = new ExplicitProxyEndPoint(System.Net.IPAddress.Any, port, true);
server.AddEndPoint(endpoint);
server.Start();
server.BeforeRequest += OnRequest;
}
public void Stop()
{
server.Stop();
}
}