1
它是關於webdriver的,特別是HtmlUnitDriver和FirefoxWebDriver代理的HtmlUnit問題
我使用相同的代理服務器設置兩個HtmlUnitDriver和FirefoxWebDriver,但只有FirefoxWebDriver工作。
我用HtmlUnitDriver得到的是來自代理服務器的「訪問被拒絕」。當我沒有使用代理設置時,我收到了一個空白頁面。我不認爲它與用戶名或密碼有關,因爲如果我沒有設置用戶名或密碼,我會得到同樣的錯誤。
以下是我的代碼,任何想法,將不勝感激。謝謝!
public WebDriver createHtmlUnitWebDriver() {
HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver() {
@Override
protected WebClient modifyWebClient(WebClient client) {
client.setProxyConfig(new ProxyConfig(PROXY_HOST, PROXY_PORT));
DefaultCredentialsProvider credentialsProvider = new DefaultCredentialsProvider();
credentialsProvider.addCredentials("username", "password");
credentialsProvider.addProxyCredentials("username", "password", PROXY_HOST, PROXY_PORT);
client.setCredentialsProvider(credentialsProvider);
return client;
}
};
htmlUnitDriver.setProxy(PROXY_HOST, PROXY_PORT);
htmlUnitDriver.setJavascriptEnabled(true);
return htmlUnitDriver;
}
public WebDriver createFirefoxWebDriver() {
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("network.proxy.type", 1);
firefoxProfile.setPreference("network.proxy.http", PROXY_HOST);
firefoxProfile.setPreference("network.proxy.http_port", PROXY_PORT);
firefoxProfile.setPreference("network.proxy.ssl", PROXY_HOST);
firefoxProfile.setPreference("network.proxy.ssl_port", PROXY_PORT);
firefoxProfile.setPreference("network.proxy.no_proxies_on", "");
return new FirefoxDriver(firefoxProfile);
}
請問您可以看看http://stackoverflow.com/questions/2131049/problem-in-htmlunit-api-for-java-headless-browser – 2010-01-25 08:37:27