18 January 2026:


This forum is now archived and is in read-only mode. Please continue discussions on our improved new Sahi Pro Community forum.



Sahi Pro is an enterprise grade test automation platform which can automate web, mobile, API, windows and java based applications and SAP.

not catching all excetions

AmarAmar Members
edited November -1 in Sahi - Open Source
i am getting more than one exception in try block but all exception are not logging in playback log.

_logException(e) also not working as described in sahi api

please give response as soon as possible.

thanks in advance
arjun.

Comments

  • narayannarayan Administrators
    Could you elaborate with an example script how the behavior is different from what is said in the API?
  • ok , i am checking for field lencth checks

    _include("/SahiReadPropertiesFile.sah");
    var $page = _getGlobal("homepage");
    _navigateTo($page);
    _include("/DlgMasterLogin.sah");
    _click(_link("Neu"));

    function resetForm(){
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtPartnerNr"), "");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtNachname"), "");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtVorname"), "");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtGeburtsdatum"), "");
    }

    function back(){
    _call(history.back());
    }


    try {
    resetForm();
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtPartnerNr"), "P84755555555555555555555555555555555555555555");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtNachname"), "Mustermann");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtVorname"), "Stefan");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtGeburtsdatum"), "01.01.2006");
    _click(_submit("OK"));
    _highlight(_listItem("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters"));
    _assertExists(_listItem("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters"));
    _assertEqual("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters", _getText(_listItem("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters")));
    _assertContainsText("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters", _listItem("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters"));


    back();
    resetForm();


    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtPartnerNr"), "P1020304050");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtNachname"), "Musterman");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtVorname"), "Stefannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtGeburtsdatum"), "01.01.2006");
    _click(_submit("OK"));

    _assertExists(_listItem("GEHE ZU FEHLER Field Vorname must not contain more than 35 characters"));
    _assertEqual("GEHE ZU FEHLER Field Vorname must not contain more than 35 characters", _getText(_listItem("GEHE ZU FEHLER Field Vorname must not contain more than 35 characters")));
    _assertContainsText("GEHE ZU FEHLER Field Vorname must not contain more than 35 characters", _listItem("GEHE ZU FEHLER Field Vorname must not contain more than 35 characters"));


    back();
    resetForm();


    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtPartnerNr"), "P1020304050");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtNachname"), "Mustermannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtVorname"), "Stefan");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtGeburtsdatum"), "01.01.2006");
    _click(_submit("OK"));
    _assertExists(_listItem("GEHE ZU FEHLER Field Nachname must not contain more than 35 characters"));
    _assertEqual("GEHE ZU FEHLER Field Nachname must not contain more than 35 characters", _getText(_listItem("GEHE ZU FEHLER Field Nachname must not contain more than 35 characters")));
    _assertContainsText("GEHE ZU FEHLER Field Nachname must not contain more than 35 characters", _listItem("GEHE ZU FEHLER Field Nachname must not contain more than 35 characters"));



    }
    catch (e) {
    _logException(e);
    _L
    }


    try {
    back();
    resetForm();
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtPartnerNr"), "P84755555555555555555555555555555555555555555");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtNachname"), "Mustermannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtVorname"), "Stefanxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    _setValue(_textbox("DlgZulageAntragNeuAnlegenForm:txtGeburtsdatum"), "012.02.2006");
    _click(_submit("OK"));
    _assertExists(_listItem("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters"));
    _assertEqual("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters", _getText(_listItem("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters")));
    _assertContainsText("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters", _listItem("GEHE ZU FEHLER Field Partnernummer must not contain more than 20 characters"));


    _assertExists(_listItem("GEHE ZU FEHLER Field Nachname must not contain more than 35 characters"));
    _assertEqual("GEHE ZU FEHLER Field Nachname must not contain more than 35 characters", _getText(_listItem("GEHE ZU FEHLER Field Nachname must not contain more than 35 characters")));
    _assertContainsText("GEHE ZU FEHLER Field Nachname must not contain more than 35 characters", _listItem("GEHE ZU FEHLER Field Nachname must not contain more than 35 characters"));


    _assertExists(_listItem("GEHE ZU FEHLER Field Vorname must not contain more than 35 characters"));
    _assertEqual("GEHE ZU FEHLER Field Vorname must not contain more than 35 characters", _getText(_listItem("GEHE ZU FEHLER Field Vorname must not contain more than 35 characters")));
    _assertContainsText("GEHE ZU FEHLER Field Vorname must not contain more than 35 characters", _listItem("GEHE ZU FEHLER Field Vorname must not contain more than 35 characters"));

    _assertExists(_listItem("GEHE ZU FEHLER Field Geburtsdatum must not contain more than 10 characters"));
    _assertEqual("GEHE ZU FEHLER Field Geburtsdatum must not contain more than 10 characters", _getText(_listItem("GEHE ZU FEHLER Field Geburtsdatum must not contain more than 10 characters")));
    _assertContainsText("GEHE ZU FEHLER Field Geburtsdatum must not contain more than 10 characters", _listItem("GEHE ZU FEHLER Field Geburtsdatum must not contain more than 10 characters"));
    }
    catch (e) {
    _logException(e);
    }
  • Please be more specific on the problem that you are facing.

    What are the exceptions being caught and not caught?

    Note: As soon as an exception is thrown within try block it comes to the catch block. After executing the catch block, it will not go back to the point where the exception occurred.
  • The main issue is that , Even though the max field check message is NOT EXISTING , the assert is true/passing i.e where as it should fail
    HOW can the the _assertExist statement return a non existance component/link/... as existing.

    The test case passes when we run independently. But when we call / assertExist a no of times for different test cases the result is erratic .
  • narayannarayan Administrators
    Arjun,

    Looks like the element is available on the browser but is not visible.

    Try:
    _assert(_isVisible(_listItem("...")))
Sign In or Register to comment.