Я проверяю наличие кнопки с помощью assertTrue ().
Assert.assertTrue(isElementPresent(By.cssSelector(or.getProperty("addCustomerButton"))));
addCustomerButton
содержит локатор кнопки.
isElementPresent()
код:
public boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch(NoSuchElementException e) {
return false;
}
}
Когда findElement()
в блоке try метода isElementPresent()
не находит элемент, findElement()
должен выдать исключение NoSuchElementException
. Я поймал исключение в блоке catch. Если isElementPresent()
возвращает true
, утверждение будет true
, и AssertionError
не будет выброшено. Если isElementPresent()
возвращает false
, тогда утверждение равно false
и AssertionError
должно быть выброшено, верно?
Но в моем сценарии выше AssertionError
не выбрасывается. тест помечается как пройденный.
Обновление:
После повторных модификаций и казней, AssertionError
выбрасывается.
Test — failed
com.datadriven.testcases.BankManagerLoginTest loginAsBankManager 1542342446849 10126
Test
com.datadriven.testcases.BankManagerLoginTest#loginAsBankManager
Exception
java.lang.AssertionError: expected [true] but found [false]
at com.datadriven.testcases.BankManagerLoginTest.loginAsBankManager(BankManagerLoginTest.java:17)
... Removed 29 stack frames
Я изменил локатор с button[ng-click='addCust()']
на button[ng-click='addCus']