Ich habe versucht, Proxy mit Anmeldeinformationen in Selen mit einem unentdeckten Chromtreiber in C#einzurichten. Ich habe auch versucht, die Erweiterung ohne ZIP -Datei zu laden, aber ich habe trotzdem keinen Erfolg bekommen. Ich versuche den Proxy so festzulegen:-< /p>
static string CreateProxyAuthExtension(string proxyHost, int proxyPort, string proxyUser, string proxyPass)
{
string manifestJson = @"
{
""manifest_version"": 2,
""name"": ""Proxy Auth Extension"",
""version"": ""1.0"",
""permissions"": [
""proxy"",
""tabs"",
""unlimitedStorage"",
""storage"",
"""",
""webRequest"",
""webRequestBlocking""
],
""background"": {
""scripts"": [""background.js""]
},
""minimum_chrome_version"": ""22""
}";
string backgroundJs = @"
chrome.runtime.onInstalled.addListener(() => {
chrome.storage.local.set({
proxyHost: '" + proxyHost + @"',
proxyPort: '" + proxyPort + @"',
proxyUser: '" + proxyUser + @"',
proxyPass: '" + proxyPass + @"'
});
chrome.storage.local.get(['proxyHost', 'proxyPort', 'proxyUser', 'proxyPass'], function (data) {
var config = {
mode: 'fixed_servers',
rules: {
singleProxy: {
scheme: 'http',
host: data.proxyHost || 'default.proxy.server',
port: parseInt(data.proxyPort) || 8080
},
bypassList: ['localhost', '127.0.0.1']
}
};
chrome.proxy.settings.set({ value: config, scope: 'regular' }, function () {});
chrome.webRequest.onAuthRequired.addListener(
function (details) {
return {
authCredentials: {
username: data.proxyUser || 'defaultUser',
password: data.proxyPass || 'defaultPass'
}
};
},
{ urls: [''] },
['blocking']
);
});
});
";
string extensionDir = Path.Combine(Directory.GetCurrentDirectory(), "extension");
string extensionZip = Path.Combine(Directory.GetCurrentDirectory(), "proxy_auth_extension.zip"); //Path.Combine(extensionDir, "proxy_auth_extension.zip");
try
{
// Create extension folder
if (!Directory.Exists(extensionDir))
Directory.CreateDirectory(extensionDir);
// Write files
File.WriteAllText(Path.Combine(extensionDir, "manifest.json"), manifestJson);
File.WriteAllText(Path.Combine(extensionDir, "background.js"), backgroundJs);
//Create ZIP archive for the extension
if (File.Exists(extensionZip))
File.Delete(extensionZip);
ZipFile.CreateFromDirectory(extensionDir, "proxy_auth_extension.zip");
}
catch (Exception ex)
{
}
return extensionZip;
}
ChromeOptions m_Options = new ChromeOptions();
extensionPath = CreateProxyAuthExtension(objWebProxy.Address.Host, objWebProxy.Address.Port, ((System.Net.NetworkCredential)objWebProxy.Credentials).UserName, ((System.Net.NetworkCredential)objWebProxy.Credentials).Password);
m_Options.AddExtension(extensionPath);
m_Options.AddArgument("--disable-blink-features=AutomationControlled");
using (var driver = UndetectedChromeDriver.Create(options: m_Options, driverExecutablePath: new ChromeDriverInstaller().Auto().Result))
{
driver.Manage().Window.Maximize();
strCompleteURL = "https://www.google.com/";
driver.Navigate().GoToUrl(strCompleteURL);
}
< /code>
Aber Proxy wird mit diesem Code nicht festgelegt. Ich habe in ganz Google nach der Lösung gesucht, aber nichts gefunden. Kann mir jemand in die richtige Richtung helfen?
Wie führe ich die Proxy -Authentifizierung in Selen unter Verwendung eines unentdeckten Chromtreibers in C#? ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post