t.me/atinfo_chat Telegram группа по автоматизации тестирования

http response body contains - при переходе на страницу

Теги: #<Tag:0x00007f748a9d4530> #<Tag:0x00007f748a9d4440> #<Tag:0x00007f748a9d4350> #<Tag:0x00007f748a9d4260> #<Tag:0x00007f748a9d4198> #<Tag:0x00007f748a9d40a8> #<Tag:0x00007f748a9d5070> #<Tag:0x00007f748a9dbf88>

Добрый день, товарищи. Начал знакомство с selenide и столкнулся с таким вопросом.
Есть кейс - при переходе на страницу посылается GET реквест в котором приходит json, в данном json`e есть id, я хочу спарсить этот json и сверить что мой id == id из json.
Знаю как сделать это через js, но не хочется посылать ещё один GET запрос через jsExpression. Хотелось бы сразу сделать ассерт что при переходе на страницу request.wasMade(), responseBody.contains(мой id).
Существует ли простая реализация с помощью selenide для моего случая? Смотрел в сторону SelenideProxyServer, но я ещё новичок в джаве и selenide, не совсем понимаю как пользоваться этим оружием.
Спасибо всем кто сможет помочь.

1 Симпатия

Запрос действительно можно получить с помощью SelenideProxyServer, но похоже, проще всё-таки через JS. А почему нет? Это же легко и быстро.

А гет, наверно, новый ID вернёт )))

может не совсем понятно, обьясню более детально. У меня есть айди товаров например, при добавлении товара в корзину я знаю его айди, при переходе в корзину отправляется GET со списком всех товаров которые уже в корзине. Вот в моем случае это единственное к чему можно привязаться и понять что после добавления товара он действительно там есть.
Беру при добавлении ID товара, записываю в переменную String itemId.
потом jsExpression

var url = "my.url";
var xhr = new XMLHttpRequest();
xhr.open("GET", url, false);
xhr.send();
var response = JSON.parse(xhr.responseText);

ну и потом останется только сделать response.contains(itemId);

думал просто что через джаву или selenide можно сделать проще. Ну и здесь приходится самому отправлять реквест, а хотелось бы просто кликнуть на корзину и получить проверку что при переходе request.wasMade(), responseBody.contains(itemId).

Это не очень хороший тест в плане пользовательской стори.
А как человек определяет что нужный товар находится в корзине? Что оправляет какие-то запросы для сверки айдишников? Пишите реквест, чтобы и в корзине у товаров отображались айдишники.

согласен что тест не очень, но в том то и дело, кроме названия товара больше не на что опираться, айдишник это единственное по чему я могу сверить конкретный товар на странице товаров и в корзине.

написал свой пример реквеста, но упёрся в одну вещь, как мне сравнить js переменную которая response с java переменной которая itemId? Нет ли у вас мыслей на этот счет?

Любую переменную из JS можно получить через

String jsValue = executeJavaScript(" какой-угодно-жс-код(); return myValue;");

Главное не забыть “return”.

1 Симпатия

огромное спасибо