Using Selenium RemoteWebDriver behind corporate proxy

后端 未结 3 846
梦谈多话
梦谈多话 2021-01-01 00:56

How can I connect to a selenium grid such as BrowserStack via RemoteWebDriver from behind a corporate proxy?

The application under test is outside the proxy and free

3条回答
  •  醉梦人生
    2021-01-01 01:38

    I've reworked Andrew Sumner's solution slightly and taken some out in case someone like me wants to just quickly funnel their WebDriver traffic through Fiddler to see the traffic.

    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.HashMap;
    
    import org.apache.http.HttpHost;
    import org.apache.http.impl.client.HttpClientBuilder;
    import org.openqa.selenium.ie.InternetExplorerOptions;
    import org.openqa.selenium.remote.CommandInfo;
    import org.openqa.selenium.remote.HttpCommandExecutor;
    import org.openqa.selenium.remote.RemoteWebDriver;
    import org.openqa.selenium.remote.http.HttpClient;
    import org.openqa.selenium.remote.http.HttpClient.Factory;
    import org.openqa.selenium.remote.internal.ApacheHttpClient;
    
    public class ProxiedRemoteExample {
        private static final String PROXY_HOST = "localhost";
        private static final int PROXY_PORT = 8888;
    
        public ProxiedRemoteExample() throws MalformedURLException {
            InternetExplorerOptions ieOptions = new InternetExplorerOptions();
            RemoteWebDriver driver = new RemoteWebDriver(new HttpCommandExecutor(new HashMap(),
                    new URL("http://localhost:5555/"), new Factory() {
                        private HttpClientBuilder builder;
                        {
                            builder = HttpClientBuilder.create();
                            builder.setProxy(new HttpHost(PROXY_HOST, PROXY_PORT));
                        }
                        @Override
                        public HttpClient createClient(URL url) {
                            return new ApacheHttpClient(builder.build(), url);
                        }
    
                    }), ieOptions);
        }
    
    }
    

提交回复
热议问题