How to check if label of view exist in MonkeyTalk automated testing

124 Views Asked by At

I recently started writing a detail automated test script on MonkeyTalk for my application. I am fascinated with the power of this tool, but there is a small issue i am facing.

I am writing a data driven test case using csv file which is running file. But now I want to induct some verification on view, I believe that could be done using javascript but I couldn't be able to work it around. Can anyone show me how.

Here is what i am doing :

1) my script file to run the data driven test case for csv file

Script DataDrivenLogin.mt RunWith login.csv

2) my other script file where i am using the views

load("libs/MyApp.js");
MyApp.DataDrivenLogin.prototype.run = function(email, _password) {
    /**
     * @type MT.Application
     */
    var app = this.app;

    email = (email != undefined && email != "*" ? email : "<email>");
    _password = (_password != undefined && _password != "*" ? _password : "<_password>");

    app.image("email").tap();
    app.input("Email Address").tap({timeout:"2000"});
    app.input("Email Address").enterText(email, {timeout:"2000"});
    app.input("Password").tap({timeout:"2000"});
    app.input("Password").enterText(_password, {timeout:"2000"});
    app.button("login").tap({timeout:"2000"});
    try {
        app.image("Open").verify(); //if label exists
    } catch(Exception) {
        app.debug().print("Label not found");
    }
    app.image("Open").tap({timeout:"2000"});
    app.table("left_drawer").selectIndex("8", {timeout:"2000"});
    app.button("Yes").tap({timeout:"2000"});
    app.image("Open").tap({timeout:"2000"});
};

but it is not working my script is still breaking what I want to do is that if the view doesn't exists the script won't break and start from top again for next data value.

Help is much appreciated. Thanks!!!

1

There are 1 best solutions below

1
umesh singh On

As far as i understood the problem here, if label does not exist then this

app.image("Open").tap({timeout:"2000"});

will also break. Try to put this as well in try block.

As

........
app.input("Password").enterText(_password, {timeout:"2000"});
    app.button("login").tap({timeout:"2000"});
    try {
        app.image("Open").verify(); //if label exists
        app.image("Open").tap({timeout:"2000"});
    } catch(Exception) {
        app.debug().print("Label not found");
    }
    app.table("left_drawer").selectIndex("8", {timeout:"2000"});
    app.button("Yes").tap({timeout:"2000"});
    app.image("Open").tap({timeout:"2000"});