Выполнить проверку значения с помощью лямбда-выражения ⇐ 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, он сразу переходит к следующей строке....
Как мне заставить его работать правильно?
Мне нужно проверить наличие конкретной строки в трафике 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, он сразу переходит к следующей строке....
Как мне заставить его работать правильно?
Мобильная версия