Java Selenium: как получить HTML-код веб-страницы без предварительной загрузки страницы?

С помощью Selenium WebDriver для Java можно ли получить HTML-код веб-страницы по указанному URL-адресу?

Я знаю, что после загрузки веб-страницы в браузере HTML-код можно получить с помощью WebDriver.getPageSource (). Однако для повышения эффективности возможно ли получить HTML без предварительной загрузки страницы в браузере?

 Leon Barkan24 июл. 2016 г., 10:16
Как вы можете показать HTML, не загружая его ?? единственное, что я могу порекомендовать вам, это использовать непосредственно запрос HTML.
 Saurabh Gaur24 июл. 2016 г., 10:17
Вы можете использовать безголовый браузер ... :)
 Martin24 июл. 2016 г., 10:53
Спасибо всем. Я посмотрю на вариант URLConnection. Леон Баркан, принятый ниже ответ может пролить свет на то, что я спрашивал.
 mob4124 июл. 2016 г., 10:08
Почему бы не использоватьURLConnection вместо?

Ответы на вопрос(2)

public static String executePost(String targetURL, String urlParameters) {
  HttpURLConnection connection = null;

  try {
    //Create connection
    URL url = new URL(targetURL);
    connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("POST");
    connection.setRequestProperty("Content-Type", 
        "application/x-www-form-urlencoded");

    connection.setRequestProperty("Content-Length", 
        Integer.toString(urlParameters.getBytes().length));
    connection.setRequestProperty("Content-Language", "en-US");  

    connection.setUseCaches(false);
    connection.setDoOutput(true);

    //Send request
    DataOutputStream wr = new DataOutputStream (
        connection.getOutputStream());
    wr.writeBytes(urlParameters);
    wr.close();

    //Get Response  
    InputStream is = connection.getInputStream();
    BufferedReader rd = new BufferedReader(new InputStreamReader(is));
    StringBuilder response = new StringBuilder(); 

    String line;
    while ((line = rd.readLine()) != null) {
      response.append(line);
      response.append('\r');
    }
    rd.close();
    return response.toString();
  } catch (Exception e) {
    e.printStackTrace();
    return null;
  } finally {
    if (connection != null) {
      connection.disconnect();
    }
  }
}
Решение Вопроса

без головы браузер.

Безголовый браузер - это веб-браузер без графического интерфейса пользователя. Эта программа будет вести себя как браузер, но не будет отображать никакой графический интерфейс.

Безголовые браузеры обычно используются в следующих ситуациях:

У вас есть центральный инструмент сборки, на котором не установлен ни один браузер. Таким образом, чтобы выполнить базовый уровень проверок работоспособности после каждой сборки, вы можете использовать безголовый браузер для запуска ваших тестов.

Вы хотите написать гусеничную программу, которая просматривает разные страницы и собирает данные, безголовый браузер будет вашим выбором. Потому что вы действительно не заботитесь об открытии браузера. Все, что вам нужно, это получить доступ к веб-страницам.

Вы хотите смоделировать несколько версий браузера на одном компьютере. В этом случае вы захотите использовать безголовый браузер, потому что большинство из них поддерживает симуляцию разных версий браузеров. Мы скоро подойдем к этому вопросу.

На что следует обратить внимание перед использованием безголового браузера

Безголовые браузеры - это симуляторы, а не настоящие браузеры. Большинство этих безголовых браузеров эволюционировали достаточно, чтобы имитировать, в довольно близком приближении, как настоящий браузер. Тем не менее, вы не захотите запускать все свои тесты в безголовом браузере. JavaScript - это та область, в которой вы хотели бы быть очень осторожным перед использованием браузера без головы. JavaScript реализован по-разному в разных браузерах. Хотя JavaScript является стандартом, но у каждого браузера есть свои небольшие отличия в том, как они реализовали JavaScript. Это также верно в случае безголовых браузеров. Например, безголовый браузер HtmlUnit использует движок JavaScript Rihno, который не используется ни одним другим браузером.

Некоторые примеры безголовых водителей включают

HtmlUnitпривидениеPhantomJSZombieJSWatir-WebDriver

Ваш ответ на вопрос