Оператор Catch не выполняется при обработке исключений XPath

#java #xpath #try-catch

#java #xpath #попробуйте-catch

Вопрос:

У меня есть тестовый пример пользовательского интерфейса на Java, который идентифицирует userName текстовое поле и вводит в него некоторое значение. Я пытаюсь реализовать блок try-catch, чтобы в случае сбоя блока try выполнялся блок catch. Но мой код вообще не выполняет блок catch.

Я попытался использовать консоль.войдите или подтвердите.сбой в блоке catch, чтобы увидеть, печатает ли он сообщение. Но выполнение не переходит к блоку catch, и браузер закрывается, как только блок try завершается неудачей.

 try {
//retrieves Xpath of userName which is incorrect.
            return browser.setValue(this.getSelector("login_userId_txtbox"), datatablevalue.userName);
        } catch (er) {
            //assert.fail("UserId xpath is incorrect", er);
            return console.log("------>error in XPATH", er);
        }
  

Фактический результат: блок catch никогда не выполняется.

Ожидаемый результат: если xpath не соответствует, он должен напечатать console.сообщение журнала в блоке catch.

Комментарии:

1. «Java» в вопросе, «Javascript» в тегах — что это?

2. .setValue есть ли метод в framework? вы передаете локатор и значение этому методу. И убедитесь, что вы делаете в этом методе.

3. Да .setValue задает значение, которое передается из локатора. И что я хочу знать — если переданное значение неверно, и оно должно перейти в блок catch и напечатать сообщение консоли. Это фреймворк на основе JS.

Ответ №1:

Когда выражение XPath ничего не выбирает, оно возвращает пустой набор узлов. Это не ошибка, поэтому она не вызывает исключения. Это обычный результат, который вам нужно протестировать.