13

I am trying to run my selenium java code to test a webpage. But webpage is not loading because of network restrictions. When I set the proxy manually and hit the url in browser it works fine. Now I need to pass those proxy setting while running the selenium code. Please help me on this.

I tried below code, but still it shows the same error:

Proxy p=new Proxy();


// Set HTTP Port to 7777
p.setHttpProxy("www.abc.com:8080");

// Create desired Capability object
DesiredCapabilities cap=new DesiredCapabilities();

// Pass proxy object p
cap.setCapability(CapabilityType.PROXY, p);

// Open  firefox browser
WebDriver driver=new ChromeDriver(cap);
1
  • Passing a Capabilities object to the ChromeDriver() constructor is deprecated. Commented May 13, 2019 at 9:57

7 Answers 7

11

Passing a Capabilities object to the ChromeDriver() constructor is deprecated. One way to use a proxy is this:

String proxy = "127.0.0.1:5000";
ChromeOptions options = new ChromeOptions().addArguments("--proxy-server=http://" + proxy);
WebDriver webDriver = new ChromeDriver(options);
Sign up to request clarification or add additional context in comments.

Comments

8

Passing a Capabilities object to the ChromeDriver() constructor is deprecated. You can find new official doc here.

ChromeOptions chromeOptions = new ChromeOptions();

Proxy proxy = new Proxy();
proxy.setAutodetect(false);
proxy.setHttpProxy("http_proxy-url:port"); 
proxy.setSslProxy("https_proxy-url:port");
proxy.setNoProxy("no_proxy-var");

chromeOptions.setCapability("proxy", proxy); 
driver = new ChromeDriver(chromeOptions);

1 Comment

tried in selenium 4 and gave bad proxy on purpose and it still connects to website :(.
7

Issue is resolved with below code -

Proxy proxy = new Proxy(); 
proxy.setHttpProxy("yoururl:portno"); 
proxy.setSslProxy("yoururl:portno"); 

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
capabilities.setCapability("proxy", proxy); 

ChromeOptions options = new ChromeOptions(); 
options.addArguments("start-maximized"); 

capabilities.setCapability(ChromeOptions.CAPABILITY, options); 

driver = new ChromeDriver(capabilities);

2 Comments

Hi @Praveen Medipally, I am getting "This site can’t be reached" error in browser with above code. I am having user id and password for my proxy server. I just injected it in my url like user:pwd@proxy:port. Is above code still working for you?
Passing a Capabilities object to the ChromeDriver() constructor is deprecated.
4
DesiredCapabilities dc;
dc = DesiredCapabilities.chrome();              
System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "9090");
System.setProperty("https.proxyHost", "127.0.0.1");
System.setProperty("https.proxyPort", "9090");                      
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
options.addArguments("--disable-extensions");
dc.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(dc);

3 Comments

Hi Barney, thanks for the response. But when I tried to implement the above code, still it shows me same error - "This site can't be reached"
Passing a Capabilities object to the ChromeDriver() constructor is deprecated.
tried in selenium 4 @Barney and with bad ip address and for some reason it still hits the website :(.
3

Another way of doing it:

        boolean useProxy = true;
        ChromeOptions options = new ChromeOptions().addArguments(
                '--headless',
                '--no-sandbox',
                '--disable-extensions',
                '--proxy-bypass-list=localhost');
        if (useProxy) {
            options.addArguments("--proxy-server=http://ProxyHost:8080");
        }

        WebDriver driver = new ChromeDriver(options);

See https://peter.sh/experiments/chromium-command-line-switches/ for more Chrome switches

Comments

0

Another way to set a proxy:

    Proxy proxy = new Proxy();
    proxy.setHttpProxy("<HOST:PORT>");
    proxy.setSslProxy("<HOST:PORT>");

    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.setCapability("proxy", proxy);

    WebDriver webDriver = new ChromeDriver(chromeOptions);

Comments

0

The only way I could use proxy was like this

String proxy="proxy-server-ip";
WebDriverManager.chromedriver().proxy(proxy).setup();

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.