2009-10-16 1 views
1

Речь идет о WebDriver, в частности HtmlUnitDriver и FirefoxWebDriverHtmlUnit прокси вопрос

Я использовал те же параметры прокси-сервера для обоих 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); 
} 

ответ

1

Использование:

HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver(); 
htmlUnitDriver.get("http://www.google.com"); 

можно видеть, что прокси-данные посылаются на лежащий в основе HttpClient (В) HttpWebConnection.getResponse() метода.

Можете ли вы предоставить настройки прокси-сервера (если они общедоступны), или вы можете попытаться напрямую использовать HttpClient, чтобы убедиться, что он несовместим с вашим прокси-сервером или нет?

P.S .: лучше использовать список пользователей HtmlUnit, поскольку другим может быть интересно также помочь.

+0

не могли бы вы рассмотреть вопрос по адресу http://stackoverflow.com/questions/2131049/problem-in-htmlunit-api-for-java-headless-browser –

 Смежные вопросы

  • Нет связанных вопросов^_^