Selenium Webdriver: проверка httpResponse xml - PullRequest
0 голосов
/ 12 января 2019

Я хочу проверить ответ XML, полученный из httpResponse

Мой код

 HttpClient httpclient = new DefaultHttpClient();
 HttpPost httpPost = new HttpPost(decouplingURL);
 httpPost.setEntity(new StringEntity(soapRequest));
 System.out.println(soapRequest);
 HttpResponse httpResponse = httpclient.execute(httpPost);
 System.out.println(httpResponse);
 String resp = EntityUtils.toString(httpResponse.getEntity(),"UTF-8");
 System.out.println(resp);
 String payload = "";
 NodeList nl = doc.getElementsByTagName("payload");
 for (int i = 0; i < nl.getLength(); i++) {
     if (nl.item(i).getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
         org.w3c.dom.Element nameElement = (org.w3c.dom.Element) nl.item(i);
         payload = nameElement.getFirstChild().getNodeValue().trim();
     }
 }

В приведенном выше коде я получаю следующий ответ, и я хочу получить @status и подтвердить, что его значение равно 1 или нет. Точно так же я должен подтвердить, что weaher 'метод зарядки' равен 3 или нет

<?xml version='1.0' encoding='UTF-8'?>
<er-response>
  <payload>
      <subscription id="33517965" status="1">
        <pricepoint id="package:aceklpackage">
          <charge-method>3</charge-method>
          <rate resource="EUR" tax-rate="0.23">30.0</rate>
          <user-group>hover32</user-group>
        </pricepoint>
      </subscription>
  </payload>
</<er-response>

1 Ответ

0 голосов
/ 12 января 2019

Не уверен, что этот вопрос имеет отношение к WebDriver, вы используете Apache HttpClient. Вы можете просто использовать XPath , чтобы извлечь нужные элементы из xml:

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

Document doc = builder.parse(new ByteArrayInputStream(resp.getBytes("UTF-8")));

XPath xPath = XPathFactory.newInstance().newXPath();

System.out.printf("Status: %s\n", xPath.evaluate("//subscription/@status", doc));
System.out.printf("Charge Method: %s\n", xPath.evaluate("//charge-method//text()", doc));

Результат:

Status: 1
Charge Method: 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...