#java #json #selenium #selenium-webdriver #automation
#java #json #селен #selenium-webdriver #автоматизация
Вопрос:
В одном из сценариев мне нужно проверить содержимое json, но когда я использую метод getText() для извлечения содержимого, он выдает мне весь элемент. Мне нужно получить только содержимое json, чтобы я мог проверить. Я хочу, чтобы извлекался только объект json, и то же самое я могу сохранить в файле json для дальнейшей проверки.
например, так выглядит div:
<div id="postMessageDiv">
<div class="msg">
<span class="MethodNameMsg">Post Message Function/ Method Name:</span>
<span class="MethodName">loadModule</span>
</div>
<br>Data:
<br>
{
"fnToCall": "loadModule",
"finappId": "10003592",
"containerFinapp": true
}
<br>
Page Height Sent By Framework:::: 656
<br>
Page Height Sent By Framework:::: 815
<br>
Page Height Sent By Framework:::: 996
<div class="msg">
<span class="MethodNameMsg">Post Message Function/ Method Name:</span>
<span class="MethodName">loadModule</span>
</div>
<br>Data:
<br>
{
"fnToCall": "loadModule",
"finappId": "10003593",
"containerFinapp": true
}
<br>Page Height Sent By Framework:::: 684
<br>Page Height Sent By Framework:::: 656
<div class="msg">
<span class="MethodNameMsg">Post Message Function/ Method Name:</span>
<span class="MethodName">accountStatus</span>
</div>
<br>Data:
<br>
{
"fnToCall": "accountStatus",
"action": "exit",
"sites": [
{
"providerAccountId": 10102587,
"bankName": "Dag Site (United States)",
"status": "IN_PROGRESS",
"providerId": 16441,
"requestId": "NGj/NgqlHsZ6W2k8NcWSJY3MSkY=",
"statusCode": "ACCT_SUMMARY_RECEIVED"
}
]
}</div>
Выходной ответ: если я использую getText(), я получаю ниже в качестве ответа:
Post Message Function/ Method Name: loadModule
Data:
{
"fnToCall": "loadModule",
"finappId": "10003592",
"containerFinapp": true
}
Page Height Sent By Framework:::: 656
Page Height Sent By Framework:::: 830
Page Height Sent By Framework:::: 849
Page Height Sent By Framework:::: 831
Post Message Function/ Method Name: loadModule
Data:
{
"fnToCall": "loadModule",
"finappId": "10003593",
"containerFinapp": true
}
Page Height Sent By Framework:::: 684
Post Message Function/ Method Name: accountStatus
Data:
{
"fnToCall": "accountStatus",
"action": "exit",
"sites": [
{
"providerAccountId": 10102575,
"bankName": "Dag Site",
"status": "IN_PROGRESS",
"providerId": 16441,
"requestId": "P7b1oRBi4geKPVhmS7cPRnqcVPU=",
"statusCode": "ACCT_SUMMARY_RECEIVED"
}
]
}
Для getText будет работать только основной div, и мне нужен только объект json для проверки. Если я могу получить объект json, я могу легко проверить содержимое с помощью библиотек json
Ответ №1:
getText() возвращает внутренний текст между узлами, нет возможности извлекать только json. Поэтому вам придется проанализировать возвращенные данные на том языке программирования, который вы использовали.
Комментарии:
1. Я не хочу сохранять значение в файле и проверять. Можем ли мы использовать тег br для извлечения данных, а затем применить утверждение?
2. в Selenium нет возможности искать определенные теги во внутреннем тексте. вам нужно будет извлечь весь текст.