использование http-прокси с селеном Geckodriver

Я попробовал несколько вещей, но ни одна из них не сработала. У кого-нибудь есть рабочий пример использования HTTP-прокси с Geckodriver для Selenium 3? Я использую привязки Java

Вот что я пробовал

        DesiredCapabilities capabilities = DesiredCapabilities.firefox();
        Proxy proxy = new Proxy();
        proxy.setHttpProxy("proxyip:proxyport");
        capabilities.setCapability("proxy", proxy);

        System.setProperty("webdriver.gecko.driver", "C:\\geckodriver-v0.16.1-win64\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver(capabilities);

person Arya    schedule 14.05.2017    source источник
comment
Можете ли вы показать нам некоторые из ваших работ, пожалуйста?   -  person DebanjanB    schedule 14.05.2017
comment
Вероятно, это потому, что вы DesiredCapabilities.chrome() но затем использовали geckodriver.exe в system.property   -  person DebanjanB    schedule 14.05.2017
comment
@Dev Я пробовал это с Firefox, но все равно получаю исключение pastebin.com/YSt3626w   -  person Arya    schedule 14.05.2017
comment
Хорошо, в трассировке стека ошибок я вижу исключение SessionNotCreatedException, что означает, что марионетка даже не вызывается. Firefox открывается через драйвер на вашем компьютере?   -  person DebanjanB    schedule 14.05.2017
comment
Да Firefox открывается, но не загружает страницу. Если я не передам ему возможности, то он также загрузит страницу, и я смогу с ней взаимодействовать.   -  person Arya    schedule 14.05.2017


Ответы (2)


Чтобы включить прокси в браузере Firefox, вам необходимо создать новый профиль и передать его драйверу следующим образом:

  • Настройка прокси-сервера HTTP:

    FirefoxProfile profile = new FirefoxProfile();         
    profile.setPreference("network.proxy.type", 1);
    profile.setPreference("network.proxy.http", "localhost");     
    profile.setPreference("network.proxy.http_port", 3128); 
    WebDriver driver = new FirefoxDriver(profile);
    
  • Настройка прокси-сервера SSL:

    FirefoxProfile profile = new FirefoxProfile();         
    profile.setPreference("network.proxy.type", 1);
    profile.setPreference("network.proxy.ssl", "localhost");     
    profile.setPreference("network.proxy.ssl_port", 3128); 
    WebDriver driver = new FirefoxDriver(profile);
    
person DebanjanB    schedule 14.05.2017
comment
Это не сработало для меня с последними версиями Firefox и Geckodriver на сегодняшний день, но сработал метод, предписанный официальной документацией: https://www.selenium.dev/documentation/en/webdriver/http_proxies/ - person Motin; 29.03.2021

Если вам нужно использовать прокси с авторизацией, то selenium этого сделать не сможет. Так как селен не поддерживает работу с алертами с запросом пароля. Я написал надстройку для Firefox, с помощью которой можно решить как проблему с прокси, так и с куками и заголовками.

https://github.com/alexsok-bit/selenium_helper

Вы можете использовать надстройку из каталога релизов, она уже подписана

person alex    schedule 10.02.2021