代码之家  ›  专栏  ›  技术社区  ›  Radek Jackowiak

计算html源中的元素

  •  0
  • Radek Jackowiak  · 技术社区  · 6 年前

    我对以下HTML中的元素计数有问题:

    <div id="photos-view" class="all visible">
      <div class="sort-container">
          <h2 class="sort-title sort-zone">Zone1<span>3</span></h2>
        <section data-index="0" class="section-0">
          <div id="photo-holder-9C9E72AA-5A40-D1A1-BF44-CB5ED13EA628" class="photo-holder" data-id="9C9E72AA-5A40-D1A1-BF44-CB5ED13EA628" data-itemid="9C9E72AA-5A40-D1A1-BF44-CB5ED13EA628">
            <picture id="photo-9C9E72AA-5A40-D1A1-BF44-CB5ED13EA628">
              <img srcset="" src="data:image/jpeg;base64" data-sheet-id="32" data-itemid="9C9E72AA-5A40-D1A1-BF44-CB5ED13EA628" data-id="9C9E72AA-5A40-D1A1-BF44-CB5ED13EA628" data-index="0" data-group="0283">
            </picture>
          </div>
          <div id="photo-holder-667CBB46-6BC4-3BCE-69F6-DB79482204F6" class="photo-holder" data-id="667CBB46-6BC4-3BCE-69F6-DB79482204F6" data-itemid="667CBB46-6BC4-3BCE-69F6-DB79482204F6">
            <picture id="photo-667CBB46-6BC4-3BCE-69F6-DB79482204F6">
              <img srcset="" src="data:image/jpeg;base64" data-sheet-id="32" data-itemid="667CBB46-6BC4-3BCE-69F6-DB79482204F6" data-id="667CBB46-6BC4-3BCE-69F6-DB79482204F6" data-index="1" data-group="0283">
            </picture>
          </div>
        </section>
      </div>
      <div class="sort-container">
          <h2 class="sort-title sort-zone">Zone2<span>1</span></h2>
        <section data-index="1" class="section-1">
          <div id="photo-holder-C1131DD2-B422-FE8E-2AF0-2581527CEA9E" class="photo-holder" data-id="C1131DD2-B422-FE8E-2AF0-2581527CEA9E" data-itemid="C1131DD2-B422-FE8E-2AF0-2581527CEA9E">
            <picture id="photo-C1131DD2-B422-FE8E-2AF0-2581527CEA9E">
              <img srcset="" src="data:image/jpeg;base64" data-sheet-id="34" data-itemid="C1131DD2-B422-FE8E-2AF0-2581527CEA9E" data-id="C1131DD2-B422-FE8E-2AF0-2581527CEA9E" data-index="0" data-group="2831">
            </picture>
          </div>
        </section>
      </div>
    </div>
    

    如您所见,有两个名为“排序标题排序区域”的类。我需要检查我的测试:

    1. Is class=“排序标题排序区域”包含文本“Zone1”和 3.
    2. Is class=“排序标题排序区域”包含文本“Zone2”和1
    2 回复  |  直到 6 年前
        1
  •  1
  •   anurag0510    6 年前

    您可以简单地将WebElements保存在类的列表中 sort-container 像这样:

    List<WebElement> list = driver.findElements(By.className("sort-container"));
    

    并使用:

    list.get(0).getText();
    list.get(1).getText();
    

    可以为您提供:

    Zone13
    Zone21
    

    作为可用于断言的输出。

        2
  •  0
  •   Sharcoux    6 年前

    我建议使用JSoup来解析文档。

    Document doc = Jsoup.parse(html);
    List<String> L = doc.select('.sort-title.sort-zone').eachText​();
    
    return L.size()==2 && L.get(0).equals("Zone13") && L.get(1).equals("Zone21");
    

    这是解决您的问题的示例代码。请根据您的需要随时改进。