Выполнить проверку значения с помощью лямбда-выраженияJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Выполнить проверку значения с помощью лямбда-выражения

Сообщение Гость »


Мне нужно проверить наличие конкретной строки в трафике DevTools (Selenium 4/Java)
Я видел несколько подобных примеров:

devTools.addListener(Network.responseReceived(), запись -> { System.out.println("URL-адрес ответа (идентификатор запроса): (" + вход.getRequestId() + ") " + запись.getResponse().getUrl() + " (" + вход.getResponse().getStatus() + ")"); }); Приведенный выше код работает правильно, он выводит значение ответа трафика.
Но мне нужно не просто распечатать значения, но и выполнить проверку, содержится ли какая-то конкретная строка в одном из URL-адресов ответа на записи.
Я пробовал что-то вроде этого:

логический ответFound = false; devTools.addListener(Network.responseReceived(), запись -> { if (entry.getResponse().getUrl().contains(expectedUrl)){ ответFound = правда; } }); Однако Java посчитала это незаконным, поскольку

Переменная, используемая в лямбда-выражении, должна быть окончательной или фактически окончательной

Поэтому я изменил это на

AtomicBoolean responseFound = новый AtomicBoolean(false); devTools.addListener(Network.responseReceived(), запись -> { if (entry.getResponse().getUrl().contains(expectedUrl)){ ответFound.set(истина); } }); Однако приведенный выше код не работает.
Во время отладки я вижу, что поток никогда не выполняет оператор if, он сразу переходит к следующей строке....
Как мне заставить его работать правильно?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»