Как выбрать раскрывающееся значение и получить доступ к вновь загруженной странице с помощью HtmlUnit? - PullRequest
0 голосов
/ 03 февраля 2019

В настоящее время я пытаюсь выбрать новое значение из раскрывающегося списка на веб-сайте с помощью HtmlUnit, а затем получить доступ к вновь загруженному контенту в div на той же странице.Java-код выполняется без проблем, но страница не обновляется после нового выбора.Пожалуйста, найдите мой Java-код и HTML-код раскрывающегося списка ниже.Есть идеи?

    try (final WebClient webClient = new WebClient()) {

            HtmlPage page1 = webClient.getPage(asinLink);

            //Select the new value of the dropdown
            HtmlSelect select = (HtmlSelect) page1.getElementById("cm-cr-sort-dropdown");
            HtmlOption option = select.getOptionByValue("recent");
            page1 = select.setSelectedAttribute(option, true);


            //access div containing newly loaded content
            DomElement reviewListDiv = page1.getElementById("cm-cr-dp-review-list");

            if(reviewListDiv != null) {

            Iterable<DomElement> reviewDivs = reviewListDiv.getByXPath("//div[@class='a-expander-content a-expander-partial-collapse-content']");

            for (DomNode reviewDiv : reviewDivs) {
                //work with newly loaded list content
            }
            }else {
                // handle error if div not found
            }                                      
        }
        catch (Exception e) {
            // handle exception
        }

<div id="cm-cr-dp-review-sort-type" data-reftag="cm_cr_dp_d_fltrs_srt" class="a-section a-spacing-small">
  <span class="a-declarative" data-action="reviews:filter-action:change" data-reviews:filter-action:change="{&quot;filterType&quot;:&quot;sortOrder&quot;}">
    <span class="a-dropdown-container">
      <select name="" autocomplete="off" id="cm-cr-sort-dropdown" tabindex="-1" class="a-native-dropdown">
        <option value="helpful" data-a-css-class="cm-cr-sort-order-option" selected="">Spitzenrezensionen</option>
        <option value="recent" data-a-css-class="cm-cr-sort-order-option">Neueste zuerst</option>
      </select>
      <span tabindex="-1" data-a-class="cm-cr-dp-filter-dropdown" class="a-button a-button-dropdown a-button-small cm-cr-dp-filter-dropdown" id="a-autoid-22" style="min-width: 0%;">
        <span class="a-button-inner">
          <span class="a-button-text a-declarative" data-action="a-dropdown-button" role="button" tabindex="0" aria-hidden="true" id="a-autoid-22-announce">
            <span class="a-dropdown-prompt">Spitzenrezensionen</span>
          </span>
          <i class="a-icon a-icon-dropdown"></i>
        </span>
    </span>
    </span>
    </span>
</div>
...