即使元素显示在Selenium中,每次也会执行catch语句

时间:2018-12-22 06:03:28

标签: selenium-webdriver

Receiving no element exception when for below code.

如果要显示adminsearchuserid并且显示元素emailtextbox,然后要输入“登录块”,我想打印“进入管理块”

但是即使显示emailtextbox,我的代码仍显示catch语句。我不明白我在哪里做错

Case "User ID":
        try {
            System.out.println("Entered the try block");

            if (adminSearchPo.adminSearchUserId.isDisplayed()) {
                System.out.println("Entered the admin block");

            } else if (lpo.emailTextBox.isDisplayed()) {
                System.out.println("Entered the LOGIN block");
            }

        } catch (org.openqa.selenium.NoSuchElementException e) {
            System.out.println("Entered the exception block");
        }    
break;

1 个答案:

答案 0 :(得分:0)

您需要使用try / catch处理每个if条件。

让我们说,正如您所说的,显示了电子邮件文本框,代码正在逐行执行并到达

    if (adminSearchPo.adminSearchUserId.isDisplayed()) {

这里的元素如果没有显示条件会导致异常,那么它将被捕获。因此,如果尝试两个条件,则没有办法走另一条路。