Как сделать аутентификацию по доверенности в селене с использованием необнаруженного хромированного драйвера в C#?C#

Место общения программистов C#
Ответить
Anonymous
 Как сделать аутентификацию по доверенности в селене с использованием необнаруженного хромированного драйвера в C#?

Сообщение Anonymous »

Я пытался настроить прокси с учетными данными в селене, используя необнаруженный драйвер Chrome в C#. Я также пытался загрузить расширение без файла ZIP, но все же я не добился успеха. Я пытаюсь установить прокси как:-< /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>
Но прокси не устанавливается с помощью этого кода. Я искал по всему Google для решения, но ничего не нашел. Кто -нибудь может помочь мне в правильном направлении?

Подробнее здесь: https://stackoverflow.com/questions/794 ... river-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»