如何选择一个下拉值并使用HtmlUnit访问新加载的页面?

时间:2019-02-03 08:02:20

标签: javascript java html htmlunit

我目前正在尝试使用HtmlUnit从website的下拉列表中选择一个新值,然后在同一页面的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>

0 个答案:

没有答案