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