Visual Relational Identifiers in LeanFT

This is the advanced feature in UFT and LeanFT that allows you to identify the objects based upon the position of adjacent objects. For example in below image we can identify the edit box using text associated with it.

VRI in LeanFT

VRI in LeanFT

Here is the complete example that shows how to use VRI in LeanFT. Note that we can provide multiple visual relational identifiers to identify a object.

package leanft;

import com.hp.lft.report.Reporter;
import com.hp.lft.report.Status;
import com.hp.lft.sdk.HorizontalVisualRelation;
import com.hp.lft.sdk.VisualRelation;
import com.hp.lft.sdk.web.*;
import org.junit.Test;

public class VriTest extends BaseTest {

    @Test
    public void test() throws Exception{

        Browser browser = BrowserFactory.launch(BrowserType.CHROME);
        try{
            //Navigate to https://www.softpost.org/selenium-test-page/
            browser.navigate("https://www.softpost.org/selenium-test-page/");
            browser.sync();

            //set value in edit box
            browser.describe(EditField.class,new EditFieldDescription.Builder()
            .id("fn").build()).setValue("Sagar");

            WebElement e2 = browser.describe(WebElement.class,new WebElementDescription.Builder()
                    .xpath("//td[text()='Last Name']").build());

            browser.describe(EditField.class,new EditFieldDescription.Builder()
                    .vri(new VisualRelation().setTestObject(e2).
                    setHorizontalRelation(HorizontalVisualRelation.LEFT_AND_INLINE)).build())
                    .setValue("Salunke");

            //click on Home link
            browser.describe(Link.class, new LinkDescription.Builder()
                    .tagName("A").innerText("Home").build()).click();

            //Wait until page loads
            browser.sync();
        }
        catch(AssertionError ex){
           //Report the Exception
           Reporter.reportEvent("Exception","Test failed", Status.Failed, ex);
           throw ex;
        }
        finally{
            //Close the browser
            browser.close();
        }
    }
}

You may also like...