if(Driver.driver.findElement(By.xpath("//div[@id='Tpay_success']")).isDisplayed())
Это не работает так, как вы думаете. findElement()
выдаст ошибку, если элемент отсутствует в DOM текущей загруженной страницы. Это означает, что isDisplayed()
не будет вызываться в таком случае.
Вы можете делать что хотите с try...catch
:
try
{
Driver.driver.findElement(By.xpath("//div[@id='Tpay_success']"))
System.out.println("Payment is successful");
Reporter.log("Payment is successful");
} catch(ExceptionInInitializerError ex) {
Thread.sleep(2000);
if(Driver.driver.findElement(By.id("pay_decline")).isEnabled()) {
System.out.println("pay declined");
action.moveToElement(By.id("pay_decline")).isEnabled()).click().perform();
Reporter.log("PAYMENT DECLINED!!");
}
}
Обратите внимание, что вы должны узнать о том, как заставить драйвер селена ожидать определенный элемент, а не использовать Thread.sleep()
.