2

I tried a few things but non of them worked. Anyone have a working example of using a HTTP proxy with Geckodriver for Selenium 3? I am using Java bindings

Here is what I tried

        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);
5
  • Can you show us some of your work please? Commented May 14, 2017 at 6:06
  • Probably that's because you DesiredCapabilities.chrome() but next you have used geckodriver.exe in system.property Commented May 14, 2017 at 6:13
  • @Dev I tried it with firefox I still get an exception pastebin.com/YSt3626w Commented May 14, 2017 at 6:17
  • Okay, in the error stacktrace I can see SessionNotCreatedException exception which means that the marionatte is not even called. Is Firefox opening up through driver on your box? Commented May 14, 2017 at 6:29
  • yes firefox opens but does not load the page. If I don't pass it capabilities, then it will also load the page and I can interact with it. Commented May 14, 2017 at 6:33

2 Answers 2

4

To enable proxy with Firefox browser you need to create a new profile and pass it to the driver as follows:

  • Setting up HTTP proxy:

    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);
    
  • Setting up SSL proxy:

    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);
    
Sign up to request clarification or add additional context in comments.

3 Comments

profile.setPreference("network.proxy.ssl", "localhost"); profile.setPreference("network.proxy.ssl_port", 3128);
This didn't work for me with the latest Firefox and Geckodriver as of today, but the method prescribed by the official docs worked: selenium.dev/documentation/en/webdriver/http_proxies
@Motin, those docs only describe Chrome. How did you get it working with Firefox?
0

If you need to use a proxy with authorization, then selenium will not be able to do it. Since selenium does not support working with alerts asking for a password. I wrote an add-on for Firefox with which you can solve both the problem with the proxy and with cookies and headers.

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

You can use an add-on from the releases directory, it is already signed

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.