Всем доброго времени суток. Возник вопрос, а как работает обработка исключений , если запущено несколько тестовых методов в разных потоках?
У меня на сайте создаётся в разных потоках браузера пул оплат однотипных договоров методом pay();
Система устроена так, что документы оплат заносятся в api сайта, но, если договоров много (как собственно в моём случае), то может возникнуть ошибка api на весь экран браузера (элемент с ошибкой описан в блоке while), поэтому я создал цикл, в котором пытаюсь оплатить договор методом setPayPolicyCash(), и , если я ловлю эту ошибку, то нажимаю “назад” и снова пытаюсь оплатить, пока окно с ошибкой не исчезнет.
В 2х из 10ти потоках эта ошибка возникает регулярно, но блок try catch не отрабатывает на этих 2х потоках, , отсюда вопрос, почему так происходит? Есть ли у меня ошибка в try catch или же исключения в потоках работают как-то не так?
Код
public void pay() throws InterruptedException {
do {
try {
setPayPolicyCash();
} catch (NoSuchElementException e) {
driver.navigate().back();
}
} while (driver.findElement(By.cssSelector("body > div > form > div.top-bar")).isDisplayed());
}