com.lazerycode.ebselen.CreateTestCode.java Source code

Java tutorial

Introduction

Here is the source code for com.lazerycode.ebselen.CreateTestCode.java

Source

/*
 * Copyright (c) 2010-2011 Ardesco Solutions - http://www.ardescosolutions.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.lazerycode.ebselen;

import com.lazerycode.ebselen.codegenerators.*;
import org.openqa.selenium.Keys;
import com.lazerycode.ebselen.exceptions.IDECommandNotFoundException;
import com.lazerycode.ebselen.handlers.LocatorHandler;

import java.util.concurrent.TimeUnit;

public class CreateTestCode {

    public enum ideCommand {

        ADDLOCATIONSTRATEGY, ADDLOCATIONSTRATEGYANDWAIT, ADDSCRIPT, ADDSCRIPTANDWAIT, ADDSELECTION, ADDSELECTIONANDWAIT, ALLOWNATIVEXPATH, ALLOWNATIVEXPATHANDWAIT, ALTKEYDOWN, ALTKEYDOWNANDWAIT, ALTKEYUP, ALTKEYUPANDWAIT, ANSWERONNEXTPROMPT, ASSERTALERT, ASSERTALERTNOTPRESENT, ASSERTALERTPRESENT, ASSERTALLBUTTONS, ASSERTALLFIELDS, ASSERTALLLINKS, ASSERTALLWINDOWIDS, ASSERTALLWINDOWNAMES, ASSERTALLWINDOWTITLES, ASSERTATTRIBUTE, ASSERTATTRIBUTEFROMALLWINDOWS, ASSERTBODYTEXT, ASSERTCHECKED, ASSERTCONFIRMATION, ASSERTCONFIRMATIONNOTPRESENT, ASSERTCONFIRMATIONPRESENT, ASSERTCOOKIE, ASSERCOOKIEBYNAME, ASSERTCOOKIENOTPRESENT, ASSERTCOOKIEPRESENT, ASSERTCSSCOUNT, ASSERTCURSORPOSITION, ASSERTEDITABLE, ASSERTELEMENTHEIGHT, ASSERTELEMENTINDEX, ASSERTELEMENTNOTPRESENT, ASSERTELEMENTPOSITIONLEFT, ASSERTELEMENTPOSITIONTOP, ASSERTELEMENTPRESENT, ASSETELEMENTWIDTH, ASSERTEVAL, ASSERTEXPRESSION, ASSERTHTMLSOURCE, ASSERTLOCATION, ASSERTMOUSESPEED, ASSERTNOTALERT, ASSERTNOTALLBUTTONS, ASSERTNOTALLFIELDS, ASSERTNOTALLLINKS, ASSERTNOTALLWINDOWIDS, ASSERTNOTALLWINDOWNAMES, ASSERTNOTALLWINDOWTITLES, ASSERTNOTATTRIBUTE, ASSERTNOTATTRIBUTEFROMALLWINDOWS, ASSERTNOTBODYTEXT, ASSERTNOTCHECKED, ASSERTNOTCONFIRMATION, ASSERTNOTCOOKIE, ASSERTNOTCOOKIEBYNAME, ASSERTNOTCSSCOUNT, ASSERTNOTCURSORPOSITION, ASSERTNOTEDITABLE, ASSERTNOTELEMENTHEIGHT, ASSERTNOTELEMENTINDEX, ASSERTNOTELEMENTPOSITIONLEFT, ASSERTNOTELEMENTPOSITIONTOP, ASSERTNOTELEMENTWIDTH, ASSERTNOTEVAL, ASSERTNOTEXPRESSION, ASSERTNOTHTMLSOURCE, ASSERTNOTLOCATION, ASSERTNOTMOUSESPEED, ASSERTNOTORDERED, ASSERTNOTPROMPT, ASSERTNOTSELECTOPTIONS, ASSERTNOTSELECTEDID, ASSERTNOTSELECTEDIDS, ASSERTNOTSELECTEDINDEX, ASSERTNOTSELECTEDINDEXES, ASSERTNOTSELECTELABEL, ASSERTNOTSELECTEDLABELS, ASSERTNOTSELECTEDVALUE, ASSERTNOTSELECTEDVALUES, ASSERTNOTSOMETHINGSELECTED, ASSERTNOTSPEED, ASSERTNOTTABLE, ASSERTNOTTEXT, ASSERTNOTTITLE, ASSERTNOTVALUE, ASSERTNOTVISIBLE, ASSERTNOTWHETHERTHISFRAMEMATCHFRAMEEXPRESSION, ASSERTNOTWHETHERTHISWINDOWMATCHWINDOWEXPRESSION, ASSERTNOTXPATHCOUNT, ASSERTORDERED, ASSERTPROMPT, ASSERTPROMPTNOTPRESENT, ASSERTPROMPTPRESENT, ASSERTSELECTOPTIONS, ASSERTSELECTEDID, ASSERTSELECTEDIDS, ASSERTSELECTEDINDEX, ASSERTSELECTEDINDEXES, ASSERTSELECTEDLABEL, ASSERTSELECTEDLABELS, ASSERTSELECTEDVALUE, ASSERTSELECTEDVALUES, ASSERTSOMETHINGSELECTED, ASSERTSPEED, ASSERTTABLE, ASSERTTEXT, ASSERTTEXTNOTPRESENT, ASSERTTEXTPRESENT, ASSERTTITLE, ASSERTVALUE, ASSERTVISIBLE, ASSERTWHETHERTHISFRAMEMATCHEFRAMEEXPRESSION, ASSERTWHETHERTHISWINDOWMATCHEWINDOWEXPRESSION, ASSERTXPATHCOUNT, ASSIGNID, ASSIGNIDANDWAIT, CAPTUREENTIREPAGESCREENSHOT, CAPTUREENTIREPAGESCREENSHOTANDWAIT, CHECK, CHECKANDWAIT, CHOOSECANCELONNEXTCONFIRMATION, CHOOSEOKONNEXTCONFIRMATION, CHOOSEOKONNEXTCONFIRMATIONANDWAIT, CLICK, CLICKANDWAIT, CLICKAT, CLICKATANDWAIT, CLOSE, CONTEXTMENU, CONTEXTMENUANDWAIT, CONTEXTMENUAT, CONTEXTMENUATANDWAIT, CREATECOOKIE, CREATECOOKIEANDWAIT, DELETEALLVISIBLECOOKIES, DELETEALLVISIBLECOOKIESANDWAIT, DELETECOOKIE, DELETECOOKIEANDWAIT, DESELECTPOPUP, DESELECTPOPUPANDWAIT, DOUBLECLICK, DOUBLECLICKANDWAIT, DOUBLECLICKAT, DOUBLECLICKATANDWAIT, DRAGANDDROP, DRAGANDDROPANDWAIT, DRAGANDDROPTOOBJECT, DRAGANDDROPTOOBJECTANDWAIT, DRAGDROP, DRAGDROPANDWAIT, ECHO, FIREEVENT, FIREEVENTANDWAIT, FOCUS, FOCUSANDWAIT, GOBACK, GOBACKANDWAIT, HIGHLIGHT, HIGHLIGHTANDWAIT, IGNOREATTRIBUTESWITHOUTVALUE, IGNOREATTRIBUTESWITHOUTVALUEANDWAIT, KEYDOWN, KEYDOWNANDWAIT, KEYPRESS, KEYPRESSANDWAIT, KEYUP, KEYUPANDWAIT, METAKEYDOWN, METAKEYDOWNANDWAIT, METAKEYUP, METAKEYUPANDWAIT, MOUSEDOWN, MOUSEDOWNANDWAIT, MOUSEDOWNAT, MOUSEDOWNATANDWAIT, MOUSEDOWNRIGHT, MOUSEDOWNRIGHTANDWAIT, MOUSEDOWNRIGHTAT, MOUSEDOWNRIGHTATANDWAIT, MOUSEMOVE, MOUSEMOVEANDWAIT, MOUSEMOVEAT, MOUSEMOVEATANDWAIT, MOUSEOUT, MOUSEOUTANDWAIT, MOUSEOVER, MOUSEOVERANDWAIT, MOUSEUP, MOUSEUPANDWAIT, MOUSEUPAT, MOUSEUPATANDWAIT, MOUSEUPRIGHT, MOUSEUPRIGHTANDWAIT, MOUSEUPRIGHTAT, MOUSEUPRIGHTATANDWAIT, OPEN, OPENWINDOW, OPENWINDOWANDWAIT, PAUSE, REFRESH, REFRESHANDWAIT, REMOVEALLSELECTIONS, REMOVEALLSELECTIONSANDWAIT, REMOVESCRIPT, REMOVESCRIPTANDWAIT, REMOVESELECTION, REMOVESELECTIONANDWAIT, ROLLUP, ROLLUPANDWAIT, RUNSCRIPT, RUNSCRIPTANDWAIT, SELECT, SELECTANDWAIT, SELECTFRAME, SELECTPOPUP, SELECTPOPUPANDWAIT, SELECTWINDOW, SETBROWSERLOGLEVEL, SETBROWSERLOGLEVELANDWAIT, SETMOUSESPEED, SETMOUSESPEEDANDWAIT, SETSPEED, SETSPEEDANDWAIT, SETTIMEOUT, SHIFTKEYDOWN, SHIFTKEYDOWNANDWAIT, SHIFTKEYUP, SHIFTKEYUPANDWAIT, STORE, STOREALERT, STOREALERTPRESENT, STOREALLBUTTONS, STOREALLFIELDS, STOREALLLINKS, STOREALLWINDOWIDS, STOREALLWINDOWNAMES, STOREALLWINDOWTITLES, STOREATTRIBUTE, STOREATTRIBUTEFROMALLWINDOWS, STOREBODYTEXT, STORECHECKED, STORECONFIRMATION, STORECONFIRMATIONPRESENT, STORECOOKIE, STORECOOKIEBYNAME, STORECOOKIEPRSENT, STORECSSCOUNT, STORECURSORPOSITION, STOREEDITABLE, STOREELEMENTHEIGHT, STOREELEMENTINDEX, STOREELEMENTPOSITIONLEFT, STOREELEMENTPOSITIONTOP, STOREELEMENTPRESENT, STOREELEMENTWIDTH, STOREEVAL, STOREEXPRESSION, STOREHTMLSOURCE, STORELOCATION, STOREMOUSESPEED, STOREORDERED, STOREPROMPT, STOREPROMPTPRESENT, STORESELECTOPTIONS, STORESELECTEDID, STORESELECTEDIDS, STORESELECTEDINDEX, STORESELECTEDINDEXES, STORESELECTEDLABEL, STORESELECTEDLABELS, STORESELECTEDVALUE, STORESELECTEDVALUES, STORESOMETHINGSELECTED, STORESPEED, STORETABLE, STORETEXT, STORETEXTPRESENT, STORETITLE, STOREVALUE, STOREVISIBLE, STOREWHETHERTHISFRAMEMATCHFRAMEEXPRESSION, STOREWHETHERTHISWINDOWMATCHWINDOWEXPRESSION, STOREXPATHCOUNT, SUBMIT, SUBMITANDWAIT, TYPE, TYPEANDWAIT, TYPEKEYS, TYPEKEYSANDWAIT, UNCHECK, UNCHECKANDWAIT, USEXPATHLIBRARY, USEXPATHLIBRARYANDWAIT, VERIFYALERT, VERIFYALERTNOTPRESENT, VERIFYALERTPRESENT, VERIFYALLBUTTONS, VERIFYALLFIELDS, VERIFYALLLINKS, VERIFYALLWINDOWIDS, VERIFYALLWINDOWNAMES, VERIFYALLWINDOWTITLES, VERIFYATTRIBUTE, VERIFYATTRIBUTEFROMALLWINDOWS, VERIFYBODYTEXT, VERIFYCHECKED, VERIFYCONFIRMATION, VERIFYCONFIRMATIONNOTPRESENT, VERIFYCONFIRMATIONPRESENT, VERIFYCOOKIE, VERIFYCOOKIEBYNAME, VERIFYCOOKIENOTPRESENT, VERIFYCOOKIEPRESENT, VERIFYCSSCOUNT, VERIFYCURSORPOSITION, VERIFYEDITABLE, VERIFYELEMENTHEIGHT, VERIFYELEMENTINDEX, VERIFYELEMENTNOTPRESENT, VERIFYELEMENTPOSITIONLEFT, VERIFYELEMENTPOSITIONTOP, VERIFYELEMENTPRESENT, VERIFYELEMENTWIDTH, VERIFYEVAL, VERIFYEXPRESSION, VERIFYHTMLSOURCE, VERIFYLOCATION, VERIFYMOUSESPEED, VERIFYNOTALERT, VERIFYNOTALLBUTTONS, VERIFYNOTALLFIELDS, VERIFYNOTALLLINKS, VERIFYNOTALLWINDOWIDS, VERIFYNOTALLWINDOWNAMES, VERIFYNOTALLWINDOWTITLES, VERIFYNOTATTRIBUTE, VERIFYNOTATTRIBUTEFROMALLWINDOWS, VERIFYNOTBODYTEXT, VERIFYNOTCHECKED, VERIFYNOTCONFIRMATION, VERIFYNOTCOOKIE, VERIFYNOTCOOKIEBYNAME, VERIFYNOTCSSCOUNT, VERIFYNOTCURSORPOSITION, VERIFYNOTEDITABLE, VERIFYNOTELEMENTHEIGHT, VERIFYNOTELEMENTINDEX, VERIFYNOTELEMENTPOSITIONLEFT, VERIFYNOTELEMENTPOSITIONTOP, VERIFYNOTELEMENTWIDTH, VERIFYNOTEVAL, VERIFYNOTEXPRESSION, VERIFYNOTHTMLSOURCE, VERIFYNOTLOCATION, VERIFYNOTMOUSESPEED, VERIFYNOTORDERED, VERIFYNOTPROMPT, VERIFYNOTSELECTOPTIONS, VERIFYNOTSELECTEDID, VERIFYNOTSELECTEDIDS, VERIFYNOTSELECTEDINDEX, VERIFYNOTSELECTEDINDEXES, VERIFYNOTSELECTEDLABEL, VERIFYNOTSELECTEDLABELS, VERIFYNOTSELECTEDVALUE, VERIFYNOTSELECTEDVALUES, VERIFYNOTSOMTHINGSELECTED, VERIFYNOTSPEED, VERIFYNOTTABLE, VERIFYNOTTEXT, VERIFYNOTTITLE, VERIFYNOTVALUE, VERIFYNOTVISIBLE, VERIFYNOTWHETHERTHISFRAMEMATCHFRAMEEXPRESSION, VERIFYNOTWHETHERTHISWINDOWMATCHWINDOWEXPRESSION, VERIFYNOTXPATHCOUNT, VERIFYORDERED, VERIFYPROMPT, VERIFYPROMPTNOTPRESENT, VERIFYPROMPTPRESENT, VERIFYSELECTOPTIONS, VERIFYSELECTEDID, VERIFYSELECTEDIDS, VERIFYSELECTEDINDEX, VERIFYSELECTEDINDEXES, VERIFYSELECTEDLABEL, VERIFYSELECTEDLABELS, VERIFYSELECTEDVALUE, VERIFYSELECTEDVALUES, VERIFYSOMETHINGSELECTED, VERIFYSPEED, VERIFYTABLE, VERIFYTEXT, VERIFYTEXTNOTPRESENT, VERIFYTEXTPRESENT, VERIFYTITLE, VERIFYVALUE, VERIFYVISIBLE, VERIFYWHETHERTHISFRAMEMATCHFRAMEEXPRESSION, VERIFYWHETHERTHISWINDOWMATCHWINDOWEXPRESSION, VERIFYXPATHCOUNT, WAITFORALERT, WAITFORALERTNOTPRESENT, WAITFORALERTPRESENT, WAITFORALLBUTTONS, WAITFORALLFIELDS, WAITFORALLLINKS, WAITFORALLWINDOWIDS, WAITFORALLWINDOWNAMES, WAITFORALLWINDOWTITLES, WAITFORATTRIBUTE, WAITFORATTRIBUTEFROMALLWINDOWS, WAITFORBODYTEXT, WAITFORCHECKED, WAITFORCONDITION, WAITFORCONFIRMATION, WAITFORCONFIRMATIONNOTPRESENT, WAITFORCONFIRMATIONPRESENT, WAITFORCOOKIE, WAITFORCOOKIEBYNAME, WAITFORCOOKIENOTPRESENT, WAITFORCOOKIEPRESENT, WAITFORCSSCOUNT, WAITFORCURSORPOSITION, WAITFOREDITABLE, WAITFORELEMENTHEIGHT, WAITFORELEMENTINDEX, WAITFORELEMENTNOTPRESENT, WAITFORELEMENTPOSITIONLEFT, WAITFORELEMENTPOSITIONTOP, WAITFORELEMENTPRESENT, WAITFORELEMENTWIDTH, WAITFOREVAL, WAITFOREXPRESSION, WAITFORFRAMETOLOAD, WAITFORHTMLSOURCE, WAITFORLOCATION, WAITFORMOUSESPEED, WAITFORNOTALERT, WAITFORNOTALLBUTTONS, WAITFORNOTALLFIELDS, WAITFORNOTALLLINKS, WAITFORNOTALLWINDOWIDS, WAITFORNOTALLWINDOWNAMES, WAITFORNOTALLWINDOWTITLES, WAITFORNOTATTRIBUTE, WAITFORNOTATTRIBUTEFROMALLWINDOWS, WAITFORNOTBODYTEXT, WAITFORNOTCHECKED, WAITFORNOTCONFIRMATION, WAITFORNOTCOOKIE, WAITFORNOTCOOKIEBYNAME, WAITFORNOTCSSCOUNT, WAITFORNOTCURSORPOSITION, WAITFORNOTEDITABLE, WAITFORNOTELEMENTHEIGHT, WAITFORNOTELEMENTINDEX, WAITFORNOTELEMENTPOSITIONLEFT, WAITFORNOTELEMENTPOSITIONTOP, WAITFORNOTELEMENTWIDTH, WAITFORNOTEVAL, WAITFORNOTEXPRESSION, WAITFORNOTHTMLSOURCE, WAITFORNOTLOCATION, WAITFORNOTMOUSESPEED, WAITFORNOTORDERED, WAITFORNOTPROMPT, WAITFORNOTSELECTOPTIONS, WAITFORNOTSELECTEDID, WAITFORNOTSELECTEDIDS, WAITFORNOTSELECTEDINDEX, WAITFORNOTSELECTEDINDEXES, WAITFORNOTSELECTEDLABEL, WAITFORNOTSELECTEDLABELS, WAITFORNOTSELECTEDVALUE, WAITFORNOTSELECTEDVALUES, WAITFORNOTSOMETHINGSELECTED, WAITFORNOTSPEED, WAITFORNOTTABLE, WAITFORNOTTEXT, WAITFORNOTTITLE, WAITFORNOTVALUE, WAITFORNOTVISIBLE, WAITFORNOTWHETHERTHISFRAMEMATCHFRAMEEXPRESSION, WAITFORNOTWHETHERTHISWINDOWMATCHWINDOWEXPRESSION, WAITFORNOTXPATHCOUNT, WAITFORORDERED, WAITFORPAGETOLOAD, WAITFORPOPUP, WAITFORPROMPT, WAITFORPROMPTNOTPRESENT, WAITFORPROMPTPRESENT, WAITFORSELECTOPTIONS, WAITFORSELECTEDID, WAITFORSELECTEDIDS, WAITFORSELECTEDINDEX, WAITFORSELECTEDINDEXES, WAITFORSELECTEDLABEL, WAITFORSELECTEDLABELS, WAITFORSELECTEDVALUE, WAITFORSELECTEDVALUES, WAITFORSOMETHINGSELECTED, WAITFORSPEED, WAITFORTABLE, WAITFORTEXT, WAITFORTEXTNOTPRESENT, WAITFORTEXTPRESENT, WAITFORTITLE, WAITFORVALUE, WAITFORVISIBLE, WAITFORWHETERTHISFRAMEMATCHFRAMEEXPRESSION, WAITFORWHETERTHISWINDOWMATCHWINDOWEXPRESSION, WAITFORXPATHCOUNT, WINDOWFOCUS, WINDOWFOCUSANDWAIT, WINDOWMAXIMIZE, WINDOWMAXIMIZEANDWAIT
    }

    ;

    private WebDriverGenerator driver = new WebDriverGenerator("driver");
    private EbselenGenerator ebselen = new EbselenGenerator("ebselen");
    private ActionsGenerator action = new ActionsGenerator("mouse", "keyboard", "builder");
    private StandardCommandsGenerator com = new StandardCommandsGenerator();
    private SeleniumSupportGenerator select = new SeleniumSupportGenerator();
    public LocatorHandler loc = new LocatorHandler();

    // The java template we use to create a java file has static HashMap called 'storedVariable' defined by default
    public <V> String store(String id, V value) {
        return "storedVariables.put(" + id + ", " + value + ")";
    }

    public String createWebElement(String variableName, String webElement) {
        return "WebElement " + variableName + " = " + webElement;
    }

    public String returnCoordinates(String xValue, String yValue) {
        return "(Coordinates) new Point(" + xValue + ", " + yValue + ")";
    }

    public String returnCoordinates(String Point) {
        return "(Coordinates) " + Point;
    }

    public String coords(String offsetXY, String locator) {
        String[] coordinates = offsetXY.split(",", 2);
        String xCoordinates = driver.findElement(loc.locatorAsString(locator)).getLocation().getX() + " + "
                + coordinates[0].trim();
        String yCoordinates = driver.findElement(loc.locatorAsString(locator)).getLocation().getY() + " + "
                + coordinates[1].trim();
        return returnCoordinates(xCoordinates, yCoordinates);
    }

    public String coords(String locator) {
        String xCoordinates = driver.findElement(loc.locatorAsString(locator)).getLocation().getX();
        String yCoordinates = driver.findElement(loc.locatorAsString(locator)).getLocation().getY();
        return returnCoordinates(xCoordinates, yCoordinates);
    }

    public String convertCommandToEbselenCode(String seleniumCommand, String target, String value)
            throws Exception {
        ideCommand command;
        try {
            command = ideCommand.valueOf(seleniumCommand.trim().toUpperCase());
        } catch (Exception ex) {
            throw new IDECommandNotFoundException("Unable to match command to known list of commands!");
        }
        //TODO remove variable below
        String testData = "";
        switch (command) {
        case ADDLOCATIONSTRATEGY:
        case ADDLOCATIONSTRATEGYANDWAIT:
            return "LOGGER.warn(\"Custom locator strategies are not supported!\")";
        case ADDSCRIPT:
        case ADDSCRIPTANDWAIT:
            //                    LOGGER.error("Function not implemented yet.  Raise a request to get it implemented");
            //TODO
        case ADDSELECTION:
        case ADDSELECTIONANDWAIT:
            return select.selectByVisibleText(target, value);
        case ALLOWNATIVEXPATH:
        case ALLOWNATIVEXPATHANDWAIT:
            return "LOGGER.warn(\"Modifying the XPath implementation mid test is not supported!\")";
        case ALTKEYDOWN:
        case ALTKEYDOWNANDWAIT:
            return action.keyboard().pressKey(Keys.ALT);
        case ALTKEYUP:
        case ALTKEYUPANDWAIT:
            return action.keyboard().releaseKey(Keys.ALT);
        case ANSWERONNEXTPROMPT:
            return driver.switchTo().alert().sendKeys(target);
        case ASSERTALERT:
            return com.assertEquals(driver.switchTo().alert().getText(), value);
        case ASSERTALERTNOTPRESENT:

            //TODO
        case ASSERTALERTPRESENT:
            //TODO
        case ASSERTALLBUTTONS:
            //TODO
        case ASSERTALLFIELDS:
            //TODO
        case ASSERTALLLINKS:
            //TODO
        case ASSERTALLWINDOWIDS:
            //TODO
        case ASSERTALLWINDOWNAMES:
            //TODO
        case ASSERTALLWINDOWTITLES:
            //TODO
        case ASSERTATTRIBUTE:
            //TODO
        case ASSERTATTRIBUTEFROMALLWINDOWS:
            //TODO
        case ASSERTBODYTEXT:
            //TODO
        case ASSERTCHECKED:
            return com.assertTrue(ebselen.element().isChecked(target));
        case ASSERTCONFIRMATION:
            //TODO
        case ASSERTCONFIRMATIONNOTPRESENT:
            //TODO
        case ASSERTCONFIRMATIONPRESENT:
            //TODO
        case ASSERTCOOKIE:

            //TODO
        case ASSERCOOKIEBYNAME:
            return com.assertEquals(driver.manage().getCookieNamed(target), value);
        case ASSERTCOOKIENOTPRESENT:
            //TODO
        case ASSERTCOOKIEPRESENT:
            //TODO
        case ASSERTCSSCOUNT:
            return com.assertEquals(driver.findElements(loc.locatorAsString(target)).size(), value);
        case ASSERTCURSORPOSITION:
            //TODO only for input element of textarea gets numerical position of cursor in field
        case ASSERTEDITABLE:
            return com.assertTrue(driver.findElement(loc.locatorAsString(target)).isEnabled());
        case ASSERTELEMENTHEIGHT:
            return com.assertEquals(driver.findElement(loc.locatorAsString(target)).getCssValue("height"), value);
        case ASSERTELEMENTINDEX:
            //TODO
        case ASSERTELEMENTNOTPRESENT:
            return com.assertFalse(ebselen.element().doesElementExist(loc.locatorAsString(target)));
        case ASSERTELEMENTPOSITIONLEFT:
            //TODO
        case ASSERTELEMENTPOSITIONTOP:
            //TODO
        case ASSERTELEMENTPRESENT:
            return com.assertTrue(ebselen.element().doesElementExist(loc.locatorAsString(target)));
        case ASSETELEMENTWIDTH:
            return com.assertEquals(driver.findElement(loc.locatorAsString(target)).getCssValue("width"), value);
        case ASSERTEVAL:
            //TODO
        case ASSERTEXPRESSION:
            //TODO
        case ASSERTHTMLSOURCE:
            //TODO
        case ASSERTLOCATION:
            return com.assertEquals(driver.getCurrentUrl(), target);
        case ASSERTMOUSESPEED:
            //TODO
        case ASSERTNOTALERT:
            //TODO
        case ASSERTNOTALLBUTTONS:
            //TODO
        case ASSERTNOTALLFIELDS:
            //TODO
        case ASSERTNOTALLLINKS:
            //TODO
        case ASSERTNOTALLWINDOWIDS:
            //TODO
        case ASSERTNOTALLWINDOWNAMES:
            //TODO
        case ASSERTNOTALLWINDOWTITLES:
            //TODO
        case ASSERTNOTATTRIBUTE:
            //TODO
        case ASSERTNOTATTRIBUTEFROMALLWINDOWS:
            //TODO
        case ASSERTNOTBODYTEXT:
            //TODO
        case ASSERTNOTCHECKED:
            return com.assertFalse(ebselen.element().isChecked(target));
        case ASSERTNOTCONFIRMATION:
            //TODO
        case ASSERTNOTCOOKIE:
            //TODO
        case ASSERTNOTCOOKIEBYNAME:
            //TODO
        case ASSERTNOTCSSCOUNT:
            return com.assertNotEquals(driver.findElements(loc.locatorAsString(target)).size(), value);
        case ASSERTNOTCURSORPOSITION:
            //TODO
        case ASSERTNOTEDITABLE:
            return com.assertFalse(driver.findElement(loc.locatorAsString(target)).isEnabled());
        case ASSERTNOTELEMENTHEIGHT:
            //TODO
        case ASSERTNOTELEMENTINDEX:
            //TODO
        case ASSERTNOTELEMENTPOSITIONLEFT:
            //TODO
        case ASSERTNOTELEMENTPOSITIONTOP:
            //TODO
        case ASSERTNOTELEMENTWIDTH:
            //TODO
        case ASSERTNOTEVAL:
            //TODO
        case ASSERTNOTEXPRESSION:
            //TODO
        case ASSERTNOTHTMLSOURCE:
            //TODO
        case ASSERTNOTLOCATION:
            //TODO
        case ASSERTNOTMOUSESPEED:
            //TODO
        case ASSERTNOTORDERED:
            //TODO
        case ASSERTNOTPROMPT:
            //TODO
        case ASSERTNOTSELECTOPTIONS:
            //TODO
        case ASSERTNOTSELECTEDID:
            //TODO
        case ASSERTNOTSELECTEDIDS:
            //TODO
        case ASSERTNOTSELECTEDINDEX:
            //TODO
        case ASSERTNOTSELECTEDINDEXES:
            //TODO
        case ASSERTNOTSELECTELABEL:
            //TODO
        case ASSERTNOTSELECTEDLABELS:
            //TODO
        case ASSERTNOTSELECTEDVALUE:
            //TODO
        case ASSERTNOTSELECTEDVALUES:
            //TODO
        case ASSERTNOTSOMETHINGSELECTED:
            //TODO
        case ASSERTNOTSPEED:
            //TODO
        case ASSERTNOTTABLE:
            //TODO
        case ASSERTNOTTEXT:
            //TODO
        case ASSERTNOTTITLE:
            //TODO
        case ASSERTNOTVALUE:
            //TODO
        case ASSERTNOTVISIBLE:
            //TODO
        case ASSERTNOTWHETHERTHISFRAMEMATCHFRAMEEXPRESSION:
            //TODO
        case ASSERTNOTWHETHERTHISWINDOWMATCHWINDOWEXPRESSION:
            //TODO
        case ASSERTNOTXPATHCOUNT:
            return com.assertNotEquals(value, driver.findElements(loc.locatorAsString(target)).size());
        case ASSERTORDERED:
            //TODO
        case ASSERTPROMPT:
            //TODO
        case ASSERTPROMPTNOTPRESENT:
            //TODO
        case ASSERTPROMPTPRESENT:
            //TODO
        case ASSERTSELECTOPTIONS:
            //TODO
        case ASSERTSELECTEDID:
            //TODO
        case ASSERTSELECTEDIDS:
            //TODO
        case ASSERTSELECTEDINDEX:
            //TODO
        case ASSERTSELECTEDINDEXES:
            //TODO
        case ASSERTSELECTEDLABEL:
            //TODO
        case ASSERTSELECTEDLABELS:
            //TODO
        case ASSERTSELECTEDVALUE:
            //TODO
        case ASSERTSELECTEDVALUES:
            //TODO
        case ASSERTSOMETHINGSELECTED:
            //TODO
        case ASSERTSPEED:
            //TODO
        case ASSERTTABLE:
            //TODO
        case ASSERTTEXT:
            return com.assertEquals(driver.findElement(loc.locatorAsString(target)).getText(), value);
        case ASSERTTEXTNOTPRESENT:
            testData += "assertFalse(isElementPresent(\"//*[contains(, '" + value + "')]\"));";
            //TODO
        case ASSERTTEXTPRESENT:
            //TODO
        case ASSERTTITLE:
            return com.assertEquals(driver.findElement(loc.locatorAsString("tag=title")).getText(), value);
        case ASSERTVALUE:
            return com.assertEquals(value, driver.findElement(loc.locatorAsString(target)).getAttribute("value"));
        case ASSERTVISIBLE:
            return com.assertTrue(driver.findElement(loc.locatorAsString(target)).isDisplayed());
        case ASSERTWHETHERTHISFRAMEMATCHEFRAMEEXPRESSION:
            //TODO
        case ASSERTWHETHERTHISWINDOWMATCHEWINDOWEXPRESSION:
            //TODO
        case ASSERTXPATHCOUNT:
            return com.assertEquals(value, driver.findElements(loc.locatorAsString(target)).size());
        case ASSIGNID:
        case ASSIGNIDANDWAIT:
            return createWebElement(value, driver.findElement(loc.locatorAsString(target)).toString());
        case CAPTUREENTIREPAGESCREENSHOT:
        case CAPTUREENTIREPAGESCREENSHOTANDWAIT:
            return ebselen.window().takeScreenshot();
        case CHECK:
        case CHECKANDWAIT:
            return ebselen.element().check(target);
        case CHOOSECANCELONNEXTCONFIRMATION:
            //                return driver.switchTo().alert().dismiss();
            //TODO
        case CHOOSEOKONNEXTCONFIRMATION:
        case CHOOSEOKONNEXTCONFIRMATIONANDWAIT:
            //                return driver.switchTo().alert().accept();
            //TODO
        case CLICK:
        case CLICKANDWAIT:
            return driver.findElement(loc.locatorAsString(target)).click();
        case CLICKAT:
        case CLICKATANDWAIT:
            action.mouse().click(coords(value, target));
        case CLOSE:
            return driver.close();
        case CONTEXTMENU:
        case CONTEXTMENUANDWAIT:
            return action.mouse().contextClick(
                    returnCoordinates(driver.findElement(loc.locatorAsString(target)).getLocation().toString()));
        case CONTEXTMENUAT:
        case CONTEXTMENUATANDWAIT:
            return action.mouse().contextClick(coords(value, target));
        case CREATECOOKIE:
        case CREATECOOKIEANDWAIT:
            //                driver.manage().addCookie()
            //TODO
        case DELETEALLVISIBLECOOKIES:
        case DELETEALLVISIBLECOOKIESANDWAIT:
            return driver.manage().deleteAllCookies();
        case DELETECOOKIE:
        case DELETECOOKIEANDWAIT:
            return driver.manage().deleteCookieNamed(target);
        case DESELECTPOPUP:
        case DESELECTPOPUPANDWAIT:
            return driver.switchTo().defaultContent();
        case DOUBLECLICK:
        case DOUBLECLICKANDWAIT:
            return action.mouse().doubleClick(
                    returnCoordinates(driver.findElement(loc.locatorAsString(target)).getLocation().toString()));
        case DOUBLECLICKAT:
        case DOUBLECLICKATANDWAIT:
            return action.mouse().doubleClick(coords(value, target));
        case DRAGDROP:
        case DRAGANDDROP:
        case DRAGDROPANDWAIT:
        case DRAGANDDROPANDWAIT:
            String[] dragAndDropCoords = value.split(",", 1);
            String dragAndDropX = driver.findElement(loc.locatorAsString(target)).getLocation().getX() + "+"
                    + dragAndDropCoords[0];
            String dragAndDropY = driver.findElement(loc.locatorAsString(target)).getLocation().getY() + "+"
                    + dragAndDropCoords[1];
            //            return action.builder().clickAndHold(driver.findElement(loc.locatorAsString(target)))
            //                    .moveByOffset(Integer.parseInt(coords[0]), Integer.parseInt(coords[1])).click();";
            //TODO
        case DRAGANDDROPTOOBJECT:
        case DRAGANDDROPTOOBJECTANDWAIT:
            testData += "coords = value.split(\",\");" + "builder.clickAndHold(driver.findElement("
                    + loc.locatorAsString(target)
                    + ")).moveByOffset(Integer.parseInt(coords[0]), Integer.parseInt(coords[1])).release(driver.findElement("
                    + loc.locatorAsString(value) + "));";
            //TODO
        case ECHO:
            return "LOGGER.info(\"{}\", " + value + ");";
        case FIREEVENT:
        case FIREEVENTANDWAIT:
            return ebselen.javascript().triggerJavascriptEvent(value,
                    driver.findElement(loc.locatorAsString(target)).toString());
        case FOCUS:
        case FOCUSANDWAIT:
            //TODO focus on the element found below
            //((Locatable) driver.findElement(" + loc.locatorAsString(target) + ")).getLocationOnScreenOnceScrolledIntoView();
        case GOBACK:
        case GOBACKANDWAIT:
            return driver.navigate().back();
        case HIGHLIGHT:
        case HIGHLIGHTANDWAIT:
            //TODO
        case IGNOREATTRIBUTESWITHOUTVALUE:
        case IGNOREATTRIBUTESWITHOUTVALUEANDWAIT:
            //TODO
        case KEYDOWN:
        case KEYDOWNANDWAIT:
            return action.builder().keyDown(driver.findElement(loc.locatorAsString(target)).toString(),
                    Keys.valueOf(value));
        case KEYPRESS:
        case KEYPRESSANDWAIT:
            return driver.findElement(loc.locatorAsString(target)).sendKeys(value);
        case KEYUP:
        case KEYUPANDWAIT:
            return action.builder().keyUp(driver.findElement(loc.locatorAsString(target)).toString(),
                    Keys.valueOf(value));
        case METAKEYDOWN:
        case METAKEYDOWNANDWAIT:
            return action.builder().keyDown(driver.findElement(loc.locatorAsString(target)).toString(), Keys.META);
        case METAKEYUP:
        case METAKEYUPANDWAIT:
            return action.builder().keyUp(driver.findElement(loc.locatorAsString(target)).toString(), Keys.META);
        case MOUSEDOWN:
        case MOUSEDOWNANDWAIT:
            return action.mouse().mouseDown(
                    returnCoordinates(driver.findElement(loc.locatorAsString(target)).getLocation().toString()));
        case MOUSEDOWNAT:
        case MOUSEDOWNATANDWAIT:
            return action.mouse().mouseDown(coords(value, target));
        case MOUSEDOWNRIGHT:
        case MOUSEDOWNRIGHTANDWAIT:
            //return action.mouse().("(Coordinates)" + driver.findElement(loc.locatorAsString(target)).getLocation());
            //TODO likemousedown but with context
        case MOUSEDOWNRIGHTAT:
        case MOUSEDOWNRIGHTATANDWAIT:
            //TODO
        case MOUSEMOVE:
        case MOUSEMOVEANDWAIT:
            return action.mouse().mouseMove(
                    returnCoordinates(driver.findElement(loc.locatorAsString(target)).getLocation().toString()));
        case MOUSEMOVEAT:
        case MOUSEMOVEATANDWAIT:
            return action.mouse().mouseMove(coords(value, target));
        case MOUSEOUT:
        case MOUSEOUTANDWAIT:
            //TODO
        case MOUSEOVER:
        case MOUSEOVERANDWAIT:
            return action.mouse().mouseMove(
                    returnCoordinates(driver.findElement(loc.locatorAsString(target)).getLocation().toString()));
        case MOUSEUP:
        case MOUSEUPANDWAIT:
            return action.mouse().mouseUp(
                    returnCoordinates(driver.findElement(loc.locatorAsString(target)).getLocation().toString()));
        case MOUSEUPAT:
        case MOUSEUPATANDWAIT:
            return action.mouse().mouseUp(coords(value, target));
        case MOUSEUPRIGHT:
        case MOUSEUPRIGHTANDWAIT:
            //TODO
        case MOUSEUPRIGHTAT:
        case MOUSEUPRIGHTATANDWAIT:
            //TODO
        case OPEN:
            return driver.get(target);
        case OPENWINDOW:
        case OPENWINDOWANDWAIT:
            //TODO
        case PAUSE:
            return "Thread.sleep((long) Integer.parseInt(" + value + "));";
        case REFRESH:
        case REFRESHANDWAIT:
            return driver.navigate().refresh();
        case REMOVEALLSELECTIONS:
        case REMOVEALLSELECTIONSANDWAIT:
            return select.deselectAll(target);
        case REMOVESCRIPT:
        case REMOVESCRIPTANDWAIT:
            //TODO
        case REMOVESELECTION:
        case REMOVESELECTIONANDWAIT:
            return select.deselectByVisibleText(target, value);
        case ROLLUP:
        case ROLLUPANDWAIT:
            //TODO
        case RUNSCRIPT:
        case RUNSCRIPTANDWAIT:
            //TODO
        case SELECT:
        case SELECTANDWAIT:
            return select.selectByVisibleText(target, value);
        case SELECTFRAME:
            return driver.switchTo().frame(driver.findElement(loc.locatorAsString(target)).toString());
        case SELECTPOPUP:
        case SELECTPOPUPANDWAIT:
            //TODO
        case SELECTWINDOW:
            //TODO
        case SETBROWSERLOGLEVEL:
        case SETBROWSERLOGLEVELANDWAIT:
            return "LOGGER.warn(\"Modifying the Log Level mid test is not supported!\")";
        case SETMOUSESPEED:
        case SETMOUSESPEEDANDWAIT:
            //TODO
        case SETSPEED:
        case SETSPEEDANDWAIT:
            //TODO
        case SETTIMEOUT:
            return driver.manage().timeouts().setScriptTimeout(Long.parseLong(value), TimeUnit.MILLISECONDS);
        case SHIFTKEYDOWN:
        case SHIFTKEYDOWNANDWAIT:
            return action.keyboard().pressKey(Keys.SHIFT);
        case SHIFTKEYUP:
        case SHIFTKEYUPANDWAIT:
            return action.keyboard().releaseKey(Keys.SHIFT);
        case STORE:
            return store(value, target);
        case STOREALERT:
            return store(value, driver.switchTo().alert().getText());
        case STOREALERTPRESENT:
            testData += "boolean alertVisible = false;" + "try {" + "driver.switchTo().alert();"
                    + "alertVisible = true;" + "} catch (Exception Ex) {" + "//Alert doesn't exist" + "}"
                    + "storedVariables.put(" + value + ", alertVisible);";
            //TODO
        case STOREALLBUTTONS:
            //TODO check implementation...  The IDE implementation stores ID's, not Elements
            return store(value,
                    driver.findElements(loc.locatorAsString("(//input[@type='button'])|(//button)")).toString());
        case STOREALLFIELDS:
            //TODO check implementation...  The IDE implementation stores ID's, not Elements
            //TODO check if this should just be input[@type='text'] or textarea as well?
            return store(value, driver.findElements(loc.locatorAsString("//input[@type='text']")).toString());
        case STOREALLLINKS:
            //TODO check implementation...  The IDE implementation stores ID's, not Elements
            return store(value, driver.findElements(loc.locatorAsString("tag=a")).toString());
        case STOREALLWINDOWIDS:
        case STOREALLWINDOWNAMES:
        case STOREALLWINDOWTITLES:
            return store(value, driver.getWindowHandles());
        case STOREATTRIBUTE:
            String[] locatorDetails = target.split("@", 1);
            return store(value,
                    driver.findElement(loc.locatorAsString(locatorDetails[0])).getAttribute(locatorDetails[1]));
        case STOREATTRIBUTEFROMALLWINDOWS:
            //TODO
        case STOREBODYTEXT:
            return store(value, driver.findElement(loc.locatorAsString("tag=body")).getText());
        case STORECHECKED:
            return store(value, ebselen.element().isChecked(target));
        case STORECONFIRMATION:
            //TODO
        case STORECONFIRMATIONPRESENT:
            //TODO
        case STORECOOKIE:
            //TODO
        case STORECOOKIEBYNAME:
            //TODO
        case STORECOOKIEPRSENT:
            //TODO
        case STORECSSCOUNT:
            return store(value, driver.findElements(loc.locatorAsString(target)).size());
        case STORECURSORPOSITION:
            //TODO
        case STOREEDITABLE:
            return store(value, driver.findElement(loc.locatorAsString(target)).isEnabled());
        case STOREELEMENTHEIGHT:
            return store(value, driver.findElement(loc.locatorAsString(target)).getSize().getHeight());
        case STOREELEMENTINDEX:
            //TODO
        case STOREELEMENTPOSITIONLEFT:
            //TODO
        case STOREELEMENTPOSITIONTOP:
            //TODO
        case STOREELEMENTPRESENT:
            return store(value, ebselen.element().doesElementExist(loc.locatorAsString(target)));
        case STOREELEMENTWIDTH:
            return store(value, driver.findElement(loc.locatorAsString(target)).getSize().getWidth());
        case STOREEVAL:
            //TODO
        case STOREEXPRESSION:
            //TODO
        case STOREHTMLSOURCE:
            return store(value, driver.getPageSource());
        case STORELOCATION:
            return store(value, driver.getCurrentUrl());
        case STOREMOUSESPEED:
            //TODO
        case STOREORDERED:
            //TODO
        case STOREPROMPT:
            //TODO
        case STOREPROMPTPRESENT:
            //TODO
        case STORESELECTOPTIONS:
            //TODO
        case STORESELECTEDID:
            //TODO
        case STORESELECTEDIDS:
            //TODO
        case STORESELECTEDINDEX:
            //TODO
        case STORESELECTEDINDEXES:
            //TODO
        case STORESELECTEDLABEL:
            //TODO
        case STORESELECTEDLABELS:
            //TODO
        case STORESELECTEDVALUE:
            //TODO
        case STORESELECTEDVALUES:
            //TODO
        case STORESOMETHINGSELECTED:
            //TODO
        case STORESPEED:
            //TODO
        case STORETABLE:
            //TODO
        case STORETEXT:
            //TODO
        case STORETEXTPRESENT:
            //TODO
        case STORETITLE:
            //TODO
        case STOREVALUE:
            //TODO
        case STOREVISIBLE:
            //TODO
        case STOREWHETHERTHISFRAMEMATCHFRAMEEXPRESSION:
            //TODO
        case STOREWHETHERTHISWINDOWMATCHWINDOWEXPRESSION:
            //TODO
        case STOREXPATHCOUNT:
            return store(value, driver.findElements(loc.locatorAsString(target)).size());
        case SUBMIT:
        case SUBMITANDWAIT:
            driver.findElement(loc.locatorAsString(target)).submit();
        case TYPE:
        case TYPEANDWAIT:
        case TYPEKEYS:
        case TYPEKEYSANDWAIT:
            return driver.findElement(loc.locatorAsString(target)).sendKeys(value);
        case UNCHECK:
        case UNCHECKANDWAIT:
            return ebselen.element().uncheck(target);
        case USEXPATHLIBRARY:
        case USEXPATHLIBRARYANDWAIT:
            //TODO
        case VERIFYALERT:
            return com.verifyEquals(driver.switchTo().alert().getText(), value);
        case VERIFYALERTNOTPRESENT:
            //TODO
        case VERIFYALERTPRESENT:
            //TODO
        case VERIFYALLBUTTONS:
            //TODO
        case VERIFYALLFIELDS:
            //TODO
        case VERIFYALLLINKS:
            //TODO
        case VERIFYALLWINDOWIDS:
            //TODO
        case VERIFYALLWINDOWNAMES:
            //TODO
        case VERIFYALLWINDOWTITLES:
            //TODO
        case VERIFYATTRIBUTE:
            //TODO
        case VERIFYATTRIBUTEFROMALLWINDOWS:
            //TODO
        case VERIFYBODYTEXT:
            //TODO
        case VERIFYCHECKED:
            return com.verifyTrue(com.assertFalse(ebselen.element().isChecked(target)));
        case VERIFYCONFIRMATION:
            //TODO
        case VERIFYCONFIRMATIONNOTPRESENT:
            //TODO
        case VERIFYCONFIRMATIONPRESENT:
            //TODO
        case VERIFYCOOKIE:
            //TODO
        case VERIFYCOOKIEBYNAME:
            //TODO
        case VERIFYCOOKIENOTPRESENT:
            //TODO
        case VERIFYCOOKIEPRESENT:
            //TODO
        case VERIFYCSSCOUNT:
            return com.verifyEquals(driver.findElements(loc.locatorAsString(target)).size(), value);
        case VERIFYCURSORPOSITION:
            //TODO
        case VERIFYEDITABLE:
            return com.verifyTrue(driver.findElement(loc.locatorAsString(target)).isEnabled());
        case VERIFYELEMENTHEIGHT:
            return com.verifyEquals(driver.findElement(loc.locatorAsString(target)).getCssValue("height"), value);
        case VERIFYELEMENTINDEX:
            //TODO
        case VERIFYELEMENTNOTPRESENT:
            return com.verifyFalse(ebselen.element().doesElementExist(loc.locatorAsString(target)));
        case VERIFYELEMENTPOSITIONLEFT:
            //TODO
        case VERIFYELEMENTPOSITIONTOP:
            //TODO
        case VERIFYELEMENTPRESENT:
            return com.verifyTrue(ebselen.element().doesElementExist(loc.locatorAsString(target)));
        case VERIFYELEMENTWIDTH:
            return com.verifyEquals(driver.findElement(loc.locatorAsString(target)).getCssValue("width"), value);
        case VERIFYEVAL:
            //TODO
        case VERIFYEXPRESSION:
            //TODO
        case VERIFYHTMLSOURCE:
            //TODO
        case VERIFYLOCATION:
            //TODO
        case VERIFYMOUSESPEED:
            //TODO
        case VERIFYNOTALERT:
            //TODO
        case VERIFYNOTALLBUTTONS:
            //TODO
        case VERIFYNOTALLFIELDS:
            //TODO
        case VERIFYNOTALLLINKS:
            //TODO
        case VERIFYNOTALLWINDOWIDS:
            //TODO
        case VERIFYNOTALLWINDOWNAMES:
            //TODO
        case VERIFYNOTALLWINDOWTITLES:
            //TODO
        case VERIFYNOTATTRIBUTE:
            //TODO
        case VERIFYNOTATTRIBUTEFROMALLWINDOWS:
            //TODO
        case VERIFYNOTBODYTEXT:
            //TODO
        case VERIFYNOTCHECKED:
            return com.verifyFalse(com.assertFalse(ebselen.element().isChecked(target)));
        case VERIFYNOTCONFIRMATION:
            //TODO
        case VERIFYNOTCOOKIE:
            //TODO
        case VERIFYNOTCOOKIEBYNAME:
            //TODO
        case VERIFYNOTCSSCOUNT:
            return com.verifyNotEquals(driver.findElements(loc.locatorAsString(target)).size(), value);
        case VERIFYNOTCURSORPOSITION:
            //TODO
        case VERIFYNOTEDITABLE:
            return com.verifyFalse(driver.findElement(loc.locatorAsString(target)).isEnabled());
        case VERIFYNOTELEMENTHEIGHT:
            return com.verifyNotEquals(driver.findElement(loc.locatorAsString(target)).getCssValue("height"),
                    value);
        case VERIFYNOTELEMENTINDEX:
            //TODO
        case VERIFYNOTELEMENTPOSITIONLEFT:
            //TODO
        case VERIFYNOTELEMENTPOSITIONTOP:
            //TODO
        case VERIFYNOTELEMENTWIDTH:
            return com.verifyNotEquals(driver.findElement(loc.locatorAsString(target)).getCssValue("width"), value);
        case VERIFYNOTEVAL:
            //TODO
        case VERIFYNOTEXPRESSION:
            //TODO
        case VERIFYNOTHTMLSOURCE:
            //TODO
        case VERIFYNOTLOCATION:
            //TODO
        case VERIFYNOTMOUSESPEED:
            //TODO
        case VERIFYNOTORDERED:
            //TODO
        case VERIFYNOTPROMPT:
            //TODO
        case VERIFYNOTSELECTOPTIONS:
            //TODO
        case VERIFYNOTSELECTEDID:
            //TODO
        case VERIFYNOTSELECTEDIDS:
            //TODO
        case VERIFYNOTSELECTEDINDEX:
            //TODO
        case VERIFYNOTSELECTEDINDEXES:
            //TODO
        case VERIFYNOTSELECTEDLABEL:
            //TODO
        case VERIFYNOTSELECTEDLABELS:
            //TODO
        case VERIFYNOTSELECTEDVALUE:
            //TODO
        case VERIFYNOTSELECTEDVALUES:
            //TODO
        case VERIFYNOTSOMTHINGSELECTED:
            //TODO
        case VERIFYNOTSPEED:
            //TODO
        case VERIFYNOTTABLE:
            //TODO
        case VERIFYNOTTEXT:
            //TODO
        case VERIFYNOTTITLE:
            //TODO
        case VERIFYNOTVALUE:
            //TODO
        case VERIFYNOTVISIBLE:
            //TODO
        case VERIFYNOTWHETHERTHISFRAMEMATCHFRAMEEXPRESSION:
            //TODO
        case VERIFYNOTWHETHERTHISWINDOWMATCHWINDOWEXPRESSION:
            //TODO
        case VERIFYNOTXPATHCOUNT:
            return com.verifyNotEquals(value, driver.findElements(loc.locatorAsString(target)).size());
        case VERIFYORDERED:
            //TODO
        case VERIFYPROMPT:
            //TODO
        case VERIFYPROMPTNOTPRESENT:
            //TODO
        case VERIFYPROMPTPRESENT:
            //TODO
        case VERIFYSELECTOPTIONS:
            //TODO
        case VERIFYSELECTEDID:
            //TODO
        case VERIFYSELECTEDIDS:
            //TODO
        case VERIFYSELECTEDINDEX:
            //TODO
        case VERIFYSELECTEDINDEXES:
            //TODO
        case VERIFYSELECTEDLABEL:
            //TODO
        case VERIFYSELECTEDLABELS:
            //TODO
        case VERIFYSELECTEDVALUE:
            //TODO
        case VERIFYSELECTEDVALUES:
            //TODO
        case VERIFYSOMETHINGSELECTED:
            //TODO
        case VERIFYSPEED:
            //TODO
        case VERIFYTABLE:
            //TODO
        case VERIFYTEXT:
            //TODO
        case VERIFYTEXTNOTPRESENT:
            return com.verifyFalse(
                    ebselen.element().doesElementExist(loc.locatorAsString("//*[contains(, '" + value + "')]")));
        case VERIFYTEXTPRESENT:
            return com.verifyTrue(
                    ebselen.element().doesElementExist(loc.locatorAsString("//*[contains(, '" + value + "')]")));
        case VERIFYTITLE:
            //TODO
        case VERIFYVALUE:
            //TODO
        case VERIFYVISIBLE:
            //TODO
        case VERIFYWHETHERTHISFRAMEMATCHFRAMEEXPRESSION:
            //TODO
        case VERIFYWHETHERTHISWINDOWMATCHWINDOWEXPRESSION:
            //TODO
        case VERIFYXPATHCOUNT:
            return com.verifyEquals(value, driver.findElements(loc.locatorAsString(target)).size());
        case WAITFORALERT:
            //TODO
        case WAITFORALERTNOTPRESENT:
            //TODO
        case WAITFORALERTPRESENT:
            //TODO
        case WAITFORALLBUTTONS:
            //TODO
        case WAITFORALLFIELDS:
            //TODO
        case WAITFORALLLINKS:
            //TODO
        case WAITFORALLWINDOWIDS:
            //TODO
        case WAITFORALLWINDOWNAMES:
            //TODO
        case WAITFORALLWINDOWTITLES:
            //TODO
        case WAITFORATTRIBUTE:
            //TODO
        case WAITFORATTRIBUTEFROMALLWINDOWS:
            //TODO
        case WAITFORBODYTEXT:
            //TODO
        case WAITFORCHECKED:
            //TODO
        case WAITFORCONDITION:
            //TODO
        case WAITFORCONFIRMATION:
            //TODO
        case WAITFORCONFIRMATIONNOTPRESENT:
            //TODO
        case WAITFORCONFIRMATIONPRESENT:
            //TODO
        case WAITFORCOOKIE:
            //TODO
        case WAITFORCOOKIEBYNAME:
            //TODO
        case WAITFORCOOKIENOTPRESENT:
            //TODO
        case WAITFORCOOKIEPRESENT:
            //TODO
        case WAITFORCSSCOUNT:
            //TODO
        case WAITFORCURSORPOSITION:
            //TODO
        case WAITFOREDITABLE:
            //TODO
        case WAITFORELEMENTHEIGHT:
            //TODO
        case WAITFORELEMENTINDEX:
            //TODO
        case WAITFORELEMENTNOTPRESENT:
            //TODO
        case WAITFORELEMENTPOSITIONLEFT:
            //TODO
        case WAITFORELEMENTPOSITIONTOP:
            //TODO
        case WAITFORELEMENTPRESENT:
            //TODO
        case WAITFORELEMENTWIDTH:
            //TODO
        case WAITFOREVAL:
            //TODO
        case WAITFOREXPRESSION:
            //TODO
        case WAITFORFRAMETOLOAD:
            //TODO
        case WAITFORHTMLSOURCE:
            //TODO
        case WAITFORLOCATION:
            //TODO
        case WAITFORMOUSESPEED:
            //TODO
        case WAITFORNOTALERT:
            //TODO
        case WAITFORNOTALLBUTTONS:
            //TODO
        case WAITFORNOTALLFIELDS:
            //TODO
        case WAITFORNOTALLLINKS:
            //TODO
        case WAITFORNOTALLWINDOWIDS:
            //TODO
        case WAITFORNOTALLWINDOWNAMES:
            //TODO
        case WAITFORNOTALLWINDOWTITLES:
            //TODO
        case WAITFORNOTATTRIBUTE:
            //TODO
        case WAITFORNOTATTRIBUTEFROMALLWINDOWS:
            //TODO
        case WAITFORNOTBODYTEXT:
            //TODO
        case WAITFORNOTCHECKED:
            //TODO
        case WAITFORNOTCONFIRMATION:
            //TODO
        case WAITFORNOTCOOKIE:
            //TODO
        case WAITFORNOTCOOKIEBYNAME:
            //TODO
        case WAITFORNOTCSSCOUNT:
            //TODO
        case WAITFORNOTCURSORPOSITION:
            //TODO
        case WAITFORNOTEDITABLE:
            //TODO
        case WAITFORNOTELEMENTHEIGHT:
            //TODO
        case WAITFORNOTELEMENTINDEX:
            //TODO
        case WAITFORNOTELEMENTPOSITIONLEFT:
            //TODO
        case WAITFORNOTELEMENTPOSITIONTOP:
            //TODO
        case WAITFORNOTELEMENTWIDTH:
            //TODO
        case WAITFORNOTEVAL:
            //TODO
        case WAITFORNOTEXPRESSION:
            //TODO
        case WAITFORNOTHTMLSOURCE:
            //TODO
        case WAITFORNOTLOCATION:
            //TODO
        case WAITFORNOTMOUSESPEED:
            //TODO
        case WAITFORNOTORDERED:
            //TODO
        case WAITFORNOTPROMPT:
            //TODO
        case WAITFORNOTSELECTOPTIONS:
            //TODO
        case WAITFORNOTSELECTEDID:
            //TODO
        case WAITFORNOTSELECTEDIDS:
            //TODO
        case WAITFORNOTSELECTEDINDEX:
            //TODO
        case WAITFORNOTSELECTEDINDEXES:
            //TODO
        case WAITFORNOTSELECTEDLABEL:
            //TODO
        case WAITFORNOTSELECTEDLABELS:
            //TODO
        case WAITFORNOTSELECTEDVALUE:
            //TODO
        case WAITFORNOTSELECTEDVALUES:
            //TODO
        case WAITFORNOTSOMETHINGSELECTED:
            //TODO
        case WAITFORNOTSPEED:
            //TODO
        case WAITFORNOTTABLE:
            //TODO
        case WAITFORNOTTEXT:
            //TODO
        case WAITFORNOTTITLE:
            //TODO
        case WAITFORNOTVALUE:
            //TODO
        case WAITFORNOTVISIBLE:
            //TODO
        case WAITFORNOTWHETHERTHISFRAMEMATCHFRAMEEXPRESSION:
            //TODO
        case WAITFORNOTWHETHERTHISWINDOWMATCHWINDOWEXPRESSION:
            //TODO
        case WAITFORNOTXPATHCOUNT:
            //TODO
        case WAITFORORDERED:
            //TODO
        case WAITFORPAGETOLOAD:
            //TODO
        case WAITFORPOPUP:
            //TODO
        case WAITFORPROMPT:
            //TODO
        case WAITFORPROMPTNOTPRESENT:
            //TODO
        case WAITFORPROMPTPRESENT:
            //TODO
        case WAITFORSELECTOPTIONS:
            //TODO
        case WAITFORSELECTEDID:
            //TODO
        case WAITFORSELECTEDIDS:
            //TODO
        case WAITFORSELECTEDINDEX:
            //TODO
        case WAITFORSELECTEDINDEXES:
            //TODO
        case WAITFORSELECTEDLABEL:
            //TODO
        case WAITFORSELECTEDLABELS:
            //TODO
        case WAITFORSELECTEDVALUE:
            //TODO
        case WAITFORSELECTEDVALUES:
            //TODO
        case WAITFORSOMETHINGSELECTED:
            //TODO
        case WAITFORSPEED:
            //TODO
        case WAITFORTABLE:
            //TODO
        case WAITFORTEXT:
            //TODO
        case WAITFORTEXTNOTPRESENT:
            //TODO check implementation
            return ebselen.waiting().untilWebElement(loc.locatorAsString("//*[contains(., '" + target + "')]"))
                    .doesNotExist();
        case WAITFORTEXTPRESENT:
            //TODO check implementation
            return ebselen.waiting().untilWebElement(loc.locatorAsString("//*[contains(., '" + target + "')]"))
                    .exists();
        case WAITFORTITLE:

            //TODO
        case WAITFORVALUE:
            //wait for a value, returns value or on/off for checkbox/radio elements
            //TODO
        case WAITFORVISIBLE:
            //TODO
        case WAITFORWHETERTHISFRAMEMATCHFRAMEEXPRESSION:
            //TODO
        case WAITFORWHETERTHISWINDOWMATCHWINDOWEXPRESSION:
            //TODO
        case WAITFORXPATHCOUNT:
            //TODO
        case WINDOWFOCUS:
        case WINDOWFOCUSANDWAIT:
            //TODO
        case WINDOWMAXIMIZE:
        case WINDOWMAXIMIZEANDWAIT:
            //TODO
        default:
            throw new IDECommandNotFoundException();
        }
    }
}