Аутентификация прокси-сервера C # Selenium для FirefoxC#

Место общения программистов C#
Ответить
Anonymous
 Аутентификация прокси-сервера C # Selenium для Firefox

Сообщение Anonymous »

Я создаю программу автоматизации с помощью Selenium Firefox, но у меня возникли проблемы с добавлением прокси-сервера в драйвер.
Вот код, который я использовал:
lib : SeleniumProxyAuthentication.Firefox 1.0.2, Selenium.Support 4.25.0, Selenium.WebDriver 4.25.0

Код: Выделить всё

using System.Net.Sockets;
using System.Net;
using OpenQA.Selenium.Firefox;
using SeleniumProxyAuthentication;
using OpenQA.Selenium;

namespace Main
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public static (FirefoxDriver driver, FirefoxDriverService driverService) CreateFirefox()
{
try
{
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.AddArguments("--no-sandbox");
firefoxOptions.AddArgument("--disable-notifications");
firefoxOptions.SetPreference("extensions.blocklist.enabled", preferenceValue: false);
firefoxOptions.SetPreference("dom.disable_open_during_load", preferenceValue: false);
firefoxOptions.SetPreference("app.update.auto", preferenceValue: false);
firefoxOptions.SetPreference("extensions.update.enabled", preferenceValue: false);
firefoxOptions.SetPreference("app.update.service.enabled", preferenceValue: false);
firefoxOptions.SetPreference("app.update.auto", preferenceValue: false);
firefoxOptions.SetPreference("app.update.staging", preferenceValue: false);
firefoxOptions.SetPreference("app.update.silent", preferenceValue: false);
firefoxOptions.SetPreference("extensions.blocklist.enabled", preferenceValue: false);
firefoxOptions.SetPreference("media.gmp-manager.cert.requireBuiltIn", preferenceValue: false);
firefoxOptions.SetPreference("media.gmp-manager.cert.checkAttributes", preferenceValue: false);
firefoxOptions.SetPreference("media.gmp-provider.enabled", preferenceValue: false);
firefoxOptions.SetPreference("media.gmp-widevinecdm.enabled", preferenceValue: false);
firefoxOptions.SetPreference("media.gmp-widevinecdm.visible", preferenceValue: false);
firefoxOptions.SetPreference("media.gmp.trial-create.enabled", preferenceValue: false);
firefoxOptions.SetPreference("media.peerconnection.enabled", preferenceValue: false);
firefoxOptions.SetPreference("browser.safebrowsing.downloads.remote.enabled", preferenceValue: false);
firefoxOptions.SetPreference("browser.safebrowsing.provider.mozilla.gethashURL", "");
firefoxOptions.SetPreference("browser.safebrowsing.provider.mozilla.updateURL", "");
firefoxOptions.SetPreference("app.update.url", "");
firefoxOptions.SetPreference("extensions.systemAddon.update.url", "");
firefoxOptions.SetPreference("media.gmp-manager.url", "");
firefoxOptions.SetPreference("dom.webdriver.enabled", preferenceValue: false);
firefoxOptions.SetPreference("webdriver_enable_native_events", preferenceValue: false);
firefoxOptions.SetPreference("webdriver_assume_untrusted_issuer", preferenceValue: false);
firefoxOptions.SetPreference("media.peerconnection.enabled", preferenceValue: false);
firefoxOptions.SetPreference("media.navigator.permission.disabled", preferenceValue: true);
firefoxOptions.AddArgument("--width=360");
firefoxOptions.AddArgument("--height=960");

firefoxOptions.SetPreference("general.useragent.override", "Mozilla/5.0 (Windows NT 10.0; Win64; x64;  rv:109.0) Gecko/20100101 Firefox/118.0");
firefoxOptions.BrowserExecutableLocation = "Firefox\\App\\Firefox\\firefox.exe";
FirefoxDriverService firefoxDriverService = FirefoxDriverService.CreateDefaultService();
firefoxDriverService.BrowserCommunicationPort = FindPort();
firefoxDriverService.HideCommandPromptWindow = true;
FirefoxDriver driver = new FirefoxDriver(firefoxDriverService, firefoxOptions, TimeSpan.FromSeconds(180.0));

return (driver, firefoxDriverService);
}
catch
{
}
return (null, null);
}

private static int FindPort()
{
int port = 0;
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 0);
socket.Bind(localEP);
localEP = (IPEndPoint)socket.LocalEndPoint;
port = localEP.Port;
}
finally
{
socket.Close();
}
return port;
}

private async void button1_Click(object sender, EventArgs e)
{
FirefoxDriver driver;
FirefoxDriverService driverService;
(driver, driverService) = CreateFirefox();
driver.AddProxyAuthenticationExtension(new SeleniumProxyAuthentication.Proxy(
ProxyProtocols.HTTP,
"198.23.239.134:6540:hhsdfhbfs:hdfheryfg"
));
driver.Navigate().GoToUrl("https://api.ipify.org/?format=json");
}
}
}
Вот ошибка, которую я получаю при запуске программы:
System.MissingMethodException
HResult=0x80131513
Message=Method не найден: 'Void OpenQA.Selenium.Firefox.FirefoxDriver.InstallAddOnFromFile(System.String)'.
Source=SeleniumProxyAuthentication
StackTrace:
at SeleniumProxyAuthentication.ProxyAuthentication.AddProxyAuthenticationExtension[T](T браузердрайвер , Прокси-прокси, XpiManifest xpiManifest)
Я также пробовал несколько других способов, но при открытии Firefox появляется диалоговое окно с просьбой ввести имя и пароль учетной записи прокси!

Подробнее здесь: https://stackoverflow.com/questions/790 ... or-firefox
Ответить

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

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

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

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

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