I have tried implementing a proxy with WebDriver similar to this post
http://groups.google.com/group/webdriver/browse_thread/thread/915e08e366948d5d
by overwriting the method as below
@Override
protected WebClient newWebClient(BrowserVersion version) {
WebClient client = new WebClient(
version,
"localhost",
1080);
client.setThrowExceptionOnFailingStatusCode(true);
client.setJavaScriptEnabled(true);
client.setRedirectEnabled(true);
try {
client.setUseInsecureSSL(true);
}
catch (GeneralSecurityException e) {
throw new RuntimeException(e);
}
return client;
}
I then set up a socks proxy by SSH in to another linux box as such
'sudo ssh -D 1080 user@linuxbox'
I am able to use the proxy through firefox just fine, but with
HtmlUnitDriver I get the following...
org.openqa.selenium.WebDriverException:
org.apache.commons.httpclient.NoHttpResponseException: The server
www.blah.com failed to respond
System info:
os.name: 'Linux', os.arch: 'i386', os.version:
'2.6.25.5-1.1-pae', java.version: '1.5.0_09'
Driver info: driver.version: htmlunit
at org.openqa.selenium.htmlunit.HtmlUnitDriver.get
(HtmlUnitDriver.java:228)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.get
(HtmlUnitDriver.java:211)
at com.blah.webdev.common.OstkHtmlUnitDriver.get
(OstkHtmlUnitDriver.java:19)
at com.blah.webdev.base.MyTest.testThis(MyTest.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
at org.junit.internal.runners.MethodRoadie.runTestMethod
(MethodRoadie.java:98)
at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:
79)
at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters
(MethodRoadie.java:87)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:
77)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod
(JUnit4ClassRunner.java:88)
at org.junit.internal.runners.JUnit4ClassRunner.runMethods
(JUnit4ClassRunner.java:51)
at org.junit.internal.runners.JUnit4ClassRunner$1.run
(JUnit4ClassRunner.java:44)
at org.junit.internal.runners.ClassRoadie.runUnprotected
(ClassRoadie.java:27)
at org.junit.internal.runners.ClassRoadie.runProtected
(ClassRoadie.java:37)
at org.junit.internal.runners.JUnit4ClassRunner.run
(JUnit4ClassRunner.java:42)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run
(JUnit4TestReference.java:45)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run
(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests
(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests
(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run
(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main
(RemoteTestRunner.java:196)
Caused by: org.apache.commons.httpclient.NoHttpResponseException: The
server MYURL failed to respond
at org.apache.commons.httpclient.HttpMethodBase.readStatusLine
(HttpMethodBase.java:1976)
at org.apache.commons.httpclient.HttpMethodBase.readResponse
(HttpMethodBase.java:1735)
at org.apache.commons.httpclient.HttpMethodBase.execute
(HttpMethodBase.java:1098)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry
(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod
(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod
(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod
(HttpClient.java:346)
at com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse
(HttpWebConnection.java:97)
at
com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection
(WebClient.java:1487)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse
(WebClient.java:1445)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:
323)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:
384)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.get
(HtmlUnitDriver.java:222)
... 25 more
The crazy thing is that when I close the ssh client the test runs
fine??? Anyone know how to get this to work?