Пример HTML-ссылки
Я делаю запрос GET, который возвращает мне ответ с примером кода HTML:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<!-- SCROLL TOP BUTTON -->
<!--===================================================-->
<button id="scroll-top" class="btn"><i class="fa fa-chevron-up"></i>
</button>
<!--===================================================-->
</body>
</html>
Как видите, атрибута NO, например "type = 'submit", НЕТ.
1. Тогда, если вы запустите следующий код:
given().body("{\"fileid\":\"FURRL6Q91QTN\"}")
.post("https://tryit.w3schools.com/code_datas.php")
.prettyPrint();
вы увидите, что в теле ответа есть кнопка с типом = "submit":
<html lang="en">
<head/>
<body>
<button type="submit" class="btn" id="scroll-top">
<i class="fa fa-chevron-up"/>
</button>
</body>
</html>
2. И если вы попытаетесь проверить тело ответа с уверенностью, как это:
given().body("{\"fileid\":\"FURRL6Q91QTN\"}")
.post("https://tryit.w3schools.com/code_datas.php")
.then()
.body("**.findAll{it.@id == 'scroll-top' && it.@type =='submit'}.size()", Matchers.is(0));
вы увидите сообщение об ошибке подтверждения:
java.lang.AssertionError: 1 ожидание не выполнено.
Путь XML **. FindAll {it. @ Id == 'верхняя часть прокрутки' && it. @ Type == 'submit'}. Size () не совпадает.
Ожидается: <0>
Фактический: 1
3. Но если просто напечатать ответ тела, используя метод asString () перед:
String responseStr = given().body("{\"fileid\":\"FURRL6Q91QTN\"}")
.post("https://tryit.w3schools.com/code_datas.php")
.asString();
System.out.println(responseStr);
код будет в порядке, и на этой кнопке не будет никакого типа:
=================================
Вопрос: что происходит в 1-2 случаях?