Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как получить текст JSON? Selenium, Java


(Luisa S) #1

Добрый день! После прохождения регистрации нужно выполнить и сравнить с эталоном
getData() и getResult()

При наборе в консоли браузера, например, sp.getResult() получаем
“{“ID”:“5f9fed68-85e6-4848-a553-fe96c5e0ddb6”,“auth_email”:”#fastreg_7f03fc6d092d",“auth_apiNode”:"…allow_https":0,“auth_savePasswrd”:1,“auth_passwrdHash”:“6d2aeea546d63daf46e54ef84b47e5ab”,“auth_passwrd”:“7f03fc6d092d”}"

Как осуществить это в тесте?


(Sergey Korol) #2
  • Что такое getData() / getResult() / sp.
  • Вы не привели кусок кода / верстки, который за это отвечает.

Внимательно читаем FAQ. Ваш вопрос не информативен. Тут нет провидцев, чтобы понять, каким образом магическое обращение к sp.getResult() возвращает вам JSON.


(Luisa S) #3

Прошу прощения.
sp.getData() и sp.getResult() - это js запросы, которые нужно отправить, чтобы получить с сервера ответ JSON. Этот ответ JSON нужно сравнить с эталонными данными. Как это можно сделать?

кусок кода/верстки привести не могу.


(sidelnikovmike) #4

ну если они один в один должны быть - можно просто через строки и equals.

Если данные хотите сравнить - создайте из каждого из них JSONObject(например используя эту библиотеку) ну и сравнивайте поочередно поля.


(Jane Tymoschuk) #5

Если sp.getData() вызывается вручную через консоль браузера, то, соответственно, скорее всего, поможет JavascriptExecutor

  ((JavascriptExecutor) driver).executeScript("return sp.getData()");

Если эти команды выполняются методом клика на какой-то веб-элемент, то можно подключить BrowserMobProxy и анализировать запросы и то что приходит в ответ.

Возможно, здесь случай, когда их стоит скомбинировать