简体   繁体   English

放心地解析 html

[英]parse html with restassured

For my restassured response I receive HTML that looks like对于我放心的回应,我收到的 HTML 看起来像

<html>
  <body>
     <div class="col-md-5 no-left-padding">
          <select class="form-control selectpicker" id="organizationId" name="organizationId" data-live-search="true" data-none-results-text="Nothing found">
                <option value="3">OptionName</option>
                <option value="12">AnotherOptionName</option> 

Is there a better way to parse it to get a map of option values and option names other than working with it as a string?除了将其作为字符串使用之外,是否有更好的方法来解析它以获取选项值和选项名称的映射?

PS I can get options via Selenium but I don't want to use it here either PS 我可以通过 Selenium 获得选项,但我也不想在这里使用它

When you get your response as String, you can use Jsoup to parse it and extract needed value:当您以字符串形式获得响应时,您可以使用 Jsoup 对其进行解析并提取所需的值:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import static org.assertj.core.api.Assertions.assertThat;

...

Document doc = Jsoup.parse(stringHtmlFromReponse, "UTF-8", "");
Elements links = doc.select("option");
assertThat(doc.select("option").attr("value")).isEqualTo("3");
assertThat(doc.select("option").get(0).text()).isEqualTo("OptionName");

More Jsoup capabilities you can find here or in official documentation.您可以在此处或在官方文档中找到更多 Jsoup 功能。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM