All Downloads are FREE. Search and download functionalities are using the official Maven repository.

okw.fourTestLocator Maven / Gradle / Ivy

Go to download

This is the core-module of OpenKeyWord. This module is automatically integrated by the adapters. In GUI automation, the core module is automatically integrated by the GUI modules (dependencies).

There is a newer version: 0.2.44
Show newest version
package okw;

public class fourTestLocator
{
	public fourTestLocator( String fspL )
    {
        super();
        this.get4TestLocator( fspL );
    }

    private String cvsGUIClass = null;
	private String cvsLocator = null;

	
    /**
     * Erzeugt einen locator aus dem gegebenen Wert, wenn fspL mit "4T!", "4T:" oder "4T?" anfängt, sonst wird fspL unverändert zuräckgegeben.
     * 
     * @note
     *  1.  fpsL = "//div[@ID='myID']" -> return = "//div[@ID='myID']" - ohne "4T*!"- Präfix wird die XPath.Angabe unverändert durchgelassen
     *  2.  fpsL = "4T!MyValue" -> return = "//*[@data-4Test='MyValue']" - Locator mit dem Attribute "data-4Test" wird erzeugt.
     *  3.  fpsL = "4TNA!MyValue" -> return = "//*[contains( @name, 'MyValue']"  - Locator mit dem Attribute "name" wird erzeugt.
     *  4.  fpsL = "4TAI!MyValue" -> return = "//*[contains( @AutomationID, 'MyValue']" - Locator mit dem Attribute "AutomationID" wird erzeugt.
     *  5.  fpsL = "4TID!MyValue" -> return = "//*[contains( @ID, 'MyValue']" - Locator mit dem Attribute "ID" wird erzeugt.
     *  6.  fpsL = "4TLA!MyValue" -> return = "//label[contains(text(),'MyValue')]/following-sibling::input"
     *  7.  fpsL = "4TTX!MyValue" -> return = "//*[contains(text(),'MyValue')]" - Locator Tag mit dem gegebene Text wird erzeugt.
     *  
     * @param fspL Locator Parameter
     * @return Erzeugter data-4Test Locator oder unveränderter fpsL-Wert.
     */
    public String get4TestLocator( String fspL )
    {
    	String lvsReturn = fspL;
    	String LogMessage = "";
    	
    	if ( fspL.startsWith("4T!") )
    	{
    		// Find object with data-4test attribute
    		LogMessage = "Generate '@data-4test' Locator";
    		seperateClassnameAndLocator( fspL.replaceFirst("4T!", "" ) );
    		lvsReturn = "//*[@data-4test='" +  this.cvsLocator + "']";
    	}
        else if ( fspL.startsWith("4TAI!") )
        {
            // Find object with label than contains text
            LogMessage = "Generate '@AutomationID' Locator";
            seperateClassnameAndLocator( fspL.replaceFirst("4TAI!", "" ) );
            lvsReturn = "//*[@AutomationID='" +  this.cvsLocator + "']";
        }
    	else if ( fspL.startsWith("4TNA!") )
    	{
    		// Find object with label than contains text
    		LogMessage = "Generate '@name' Locator";
    		seperateClassnameAndLocator( fspL.replaceFirst("4TNA!", "" ) );
    		lvsReturn = "//*[contains(@name,'" + this.cvsLocator + "')]";
    	}
    	else if ( fspL.startsWith("4TID!") )
    	{
    		// Find object with label than contains text
    		LogMessage = "Generate '@id' Locator";
    		seperateClassnameAndLocator( fspL.replaceFirst("4TID!", "" ) );
    		lvsReturn = "//*[contains(@id,'" + this.cvsLocator + "')]";
    	}
    	else if ( fspL.startsWith("4TLA!") )
    	{
    		// Find object with label than contains text
    		LogMessage = "Generate 'label' Locator";
    		seperateClassnameAndLocator( fspL.replaceFirst("4TLA!", "" ) );
    		lvsReturn = "//label[contains(text(),'" + this.cvsLocator + "')]/following-sibling::input";
    	}
    	else if ( fspL.startsWith("4TTX!") )
    	{
    		// Find object with label than contains text
    		LogMessage = "Generate 'Contains Text' Locator";
    		seperateClassnameAndLocator( fspL.replaceFirst("4TTX!", "" ) );
    		lvsReturn = "//*[contains(text(),'" + this.cvsLocator + "')]";
    	}
    	
    	this.cvsLocator = lvsReturn;
    	
    	return lvsReturn;
    }

    /**
     * Trennt den Klassenbezeichner vom Locator ab.
     * 
     * "Myclass::myLocator"
     * "MyLocator" 
     * 
     * @param fpsLocator
     * @return
     */
	public int seperateClassnameAndLocator( String fpsLocator )
	{
		int iReturn = 0;
		
		String[] MySplit = fpsLocator.split("::");
		
		if ( MySplit.length == 1 )
		{
			cvsLocator = MySplit[0];
		}
		
		else if ( MySplit.length == 2 )
		{
			cvsGUIClass= MySplit[0];
			cvsLocator = MySplit[1];
		}
		else
		{
			iReturn = -1;
		}
	
		return iReturn;
	}

	public String getGUIClass() {
		return cvsGUIClass;
	}

	public String getLocator()
	{
		return cvsLocator;
	}
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy