Example usage for org.openqa.selenium WebElement click

List of usage examples for org.openqa.selenium WebElement click

Introduction

In this page you can find the example usage for org.openqa.selenium WebElement click.

Prototype

void click();

Source Link

Document

Click this element.

Usage

From source file:com.ecfeed.core.runner.java.SeleniumTestMethodInvoker.java

License:Open Source License

private boolean processSelect(String elementType, MethodParameterNode methodParameterNode, String argument) {

    if (!NodePropertyDefElemType.isSelect(elementType)) {
        return false;
    }//ww  w  .  j a  v  a2s.com

    WebElement webElement = findWebElement(methodParameterNode);

    if (!isElementOkForInput(webElement)) {
        reportExceptionUnavailableElement(methodParameterNode);
    }
    String tagName = webElement.getTagName();

    if (!StringHelper.isEqual(tagName, TAG_SELECT)) {
        return false;
    }

    List<WebElement> allOptions = webElement.findElements(By.tagName(TAG_OPTION));
    for (WebElement option : allOptions) {
        String text = option.getText();

        if (StringHelper.isEqual(text, argument)) {
            option.click();
            return true;
        }
    }

    reportException("Option with text: '" + argument + "' not found.", methodParameterNode);
    return true;
}

From source file:com.ecfeed.core.runner.java.SeleniumTestMethodInvoker.java

License:Open Source License

private boolean processButton(String elementType, MethodParameterNode methodParameterNode, String argument) {

    if (!NodePropertyDefElemType.isButton(elementType)) {
        return false;
    }//from  ww  w.ja  v  a  2s.c  o m

    WebElement webElement = findWebElement(methodParameterNode);

    if (!isElementOkForInput(webElement)) {
        reportExceptionUnavailableElement(methodParameterNode);
    }

    if (BooleanHelper.parseBoolean(argument)) {
        webElement.click();
    }

    return true;
}

From source file:com.ecfeed.core.runner.java.SeleniumTestMethodInvoker.java

License:Open Source License

private boolean performAction(WebElement webElement, String argument, MethodParameterNode methodParameterNode) {

    String action = methodParameterNode.getPropertyValue(NodePropertyDefs.PropertyId.PROPERTY_ACTION);

    if (action == null) {
        reportException("Action is undefined.", methodParameterNode);
    }//from w w  w  . j  av a2 s . co m

    if (NodePropertyDefs.isActionSendKeys(action)) {
        webElement.sendKeys(argument);
        return true;
    }

    if (NodePropertyDefs.isActionClick(action)) {
        webElement.click();
        return true;
    }

    if (NodePropertyDefs.isActionSubmit(action)) {
        webElement.submit();
        return true;
    }

    return false;
}

From source file:com.ecofactor.qa.automation.insite.page.DemandSideManagementImpl.java

License:Open Source License

/**
 * Check events and groups link./*from ww w. j  a v a  2 s  .com*/
 * 
 * @return true, if successful
 * @see com.ecofactor.qa.automation.insite.page.DemandSideManagement#checkEventsAndGroupsLink()
 */
@Override
public boolean checkEventsAndGroupsLink() {

    boolean linksAccesible = false;
    WebElement groupsLink = retrieveElementByTagText(DriverConfig.getDriver(), TAG_ANCHOR, "Groups");
    groupsLink.click();
    smallWait();
    List<WebElement> newGroupElement = retrieveElementsByTagText(DriverConfig.getDriver(), TAG_ANCHOR,
            "New Group");
    linksAccesible = newGroupElement.size() > 0 ? true : false;

    WebElement eventsLink = retrieveElementByTagText(DriverConfig.getDriver(), TAG_ANCHOR,
            "Load Shaping Events");
    eventsLink.click();
    smallWait();

    List<WebElement> newEventLink = retrieveElementsByTagText(DriverConfig.getDriver(), TAG_ANCHOR,
            "New Event");
    linksAccesible = newEventLink.size() > 0 ? true : false;

    return linksAccesible;
}

From source file:com.ecofactor.qa.automation.insite.page.DemandSideManagementImpl.java

License:Open Source License

/**
 * Create a new event, with description according the null or empty value.
 * Verify the event name if 'checkEventName' is set to true.
 * //from   w  ww . j  a  va 2s.  c o m
 * @param newEventName
 *            the new event name
 * @param eventDescription
 *            the event description
 * @param checkEventName
 *            the check event name
 */
public void triggerNewEvent(final String newEventName, final String eventDescription,
        final boolean checkEventName) {

    logger.info("check if create new event link available.");
    WebElement newEventElement = retrieveElementByLinkText(DriverConfig.getDriver(),
            demandSideManagementConfig.get(NEW_EVENT), SHORT_TIMEOUT);
    DriverConfig.setLogString("click on create new event link.", true);
    newEventElement.click();
    largeWait();
    logger.info("check if create new event form displayed.");
    WebElement formElementPopUp = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(POPUP_FORM)));
    DateFormat dateFormat = new SimpleDateFormat("yyMMddHHmmss");
    Date date = new Date();
    String dateValue = dateFormat.format(date);

    WaitUtil.waitUntil(5000);
    DriverConfig.setLogString("Enter event name - " + newEventName + dateValue, true);
    formElementPopUp.findElement(By.id(demandSideManagementConfig.get(EVENT_NAME_FIELD)))
            .sendKeys(newEventName + dateValue);
    if (eventDescription != null && !eventDescription.isEmpty()) {
        DriverConfig.setLogString("Enter the description - " + eventDescription + dateValue, true);
        formElementPopUp.findElement(By.name(demandSideManagementConfig.get(EVENT_DESCRIPTION_FIELD)))
                .sendKeys(eventDescription + dateValue);
    }

    logger.info("Verify the event name length.");
    int lengthCheck = formElementPopUp.findElement(By.id(demandSideManagementConfig.get(EVENT_NAME_FIELD)))
            .getAttribute(ATTR_VALUE).length();

    if (checkEventName && lengthCheck == 50) {
        logger.info("Assert the length is not more than 50.", true);
        Assert.assertEquals(lengthCheck == 50, true, "Length is more than 50");
    }

    DriverConfig.setLogString("Save as draft event.", true);
    formElementPopUp.findElement(By.id(demandSideManagementConfig.get(SAVE_DRAFT))).click();
    smallWait();
}

From source file:com.ecofactor.qa.automation.insite.page.DemandSideManagementImpl.java

License:Open Source License

/**
 * Creates the event for group./*from w w w. ja  va2 s. c  om*/
 * 
 * @param groupName
 *            the group name
 * @return the string
 * @throws ParseException
 *             the parse exception
 */
public String createEventForGroup(String groupName) throws ParseException {

    ecpCoreLSProgram = new EcpCoreLSProgram();
    lsProgramId = getProgramId();
    ecpCoreLSProgram = (EcpCoreLSProgram) lsProgramDao.getEcpCoreLSProgram(lsProgramId).get(0);
    logger.info("check if groups link available and click it.");
    mainformElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(CREATE_EVENT_MAIN_FORM)));
    WebElement eventsLink = mainformElement.findElement(By.id(demandSideManagementConfig.get(GROUPS_LINK)));
    eventsLink.click();
    smallWait();
    formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm a");
    formatter.setTimeZone(TimeZone.getTimeZone(ecpCoreLSProgram.getTimeZone()));
    eventDate = Calendar.getInstance();
    eventDate.setTimeZone(TimeZone.getTimeZone(ecpCoreLSProgram.getTimeZone()));

    eventDate.add(Calendar.DATE, Integer.parseInt(demandSideManagementConfig.get(ADD_EVENT_DATE_PART)));
    eventDate.set(Calendar.HOUR, ecpCoreLSProgram.getMinStartHour());

    if (ecpCoreLSProgram.getMinStartHour() >= 12)
        eventDate.set(Calendar.AM_PM, 1);
    else
        eventDate.set(Calendar.AM_PM, 0);

    return createEvent(false, formatter.format(eventDate.getTime()), "60", "SCHEDULED", false, groupName);
}

From source file:com.ecofactor.qa.automation.insite.page.DemandSideManagementImpl.java

License:Open Source License

/**
 * Test available zipcodes are valid./*from w  w w  .ja  v  a  2s  .  c  om*/
 * 
 * @param programid
 *            the programid
 * @param programName
 *            the program name
 */
public void testAvailableZipcodesAreValid(int programid, String programName) {

    loadPageFrame();
    DriverConfig.setLogString("select groups tab.", true);
    mainformElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(CREATE_EVENT_MAIN_FORM)));
    WebElement GroupsLink = mainformElement.findElement(By.id(demandSideManagementConfig.get(GROUPS_LINK)));
    GroupsLink.click();
    loadPageFrame();
    WaitUtil.waitUntil(5000);
    WebElement newFormElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(GROUP_LIST_FORM)));
    logger.info("check if create group link available and click it.", true);
    isDisplayedById(DriverConfig.getDriver(), demandSideManagementConfig.get(CREATE_NEW_GROUP_LINK),
            SHORT_TIMEOUT);
    WebElement groupsFormElement = retrieveElementByAttributeValueByPassingElement(DriverConfig.getDriver(),
            newFormElement, TAG_ANCHOR, ATTR_ID, demandSideManagementConfig.get(CREATE_NEW_GROUP_LINK));
    groupsFormElement.click();

    WaitUtil.waitUntil(SHORT_TIMEOUT);
    isDisplayedById(DriverConfig.getDriver(), demandSideManagementConfig.get(CREATE_GROUP_FORM), SHORT_TIMEOUT);
    WebElement createGroupsFormElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(CREATE_GROUP_FORM)));
    WaitUtil.waitUntil(5000);
    isDisplayedById(DriverConfig.getDriver(), demandSideManagementConfig.get(RULE_NAME), SHORT_TIMEOUT);
    availableZipCodes = createGroupsFormElement.findElements(By.tagName("ul"));
    availableZipListElement = availableZipCodes.get(0);
    availableZipCodeElements = availableZipListElement.findElements(By.tagName("li"));
    DriverConfig.setLogString("get available zip codes from database.", true);
    List<Region> rules = regionDao
            .getAvailableZipcodes(lsProgramDao.findById(EcpCoreLSProgram.class, programid).getId());
    int count = 0;
    DriverConfig.setLogString("check if all the available zipcodes are displayed in screen.", true);
    while (rules.iterator().hasNext()) {
        Assert.assertTrue(
                getListFromZipCodeElementList(availableZipCodeElements).contains(rules.get(count).getZip()),
                "Zipcodes are not available");
        count++;
    }
}

From source file:com.ecofactor.qa.automation.insite.page.DemandSideManagementImpl.java

License:Open Source License

/**
 * Creates the groups./*  ww w. jav  a2s. c o m*/
 * 
 * @return the string
 */
public String createGroups() {

    loadPageFrame();

    ecpCoreLSProgram = new EcpCoreLSProgram();
    lsProgramId = getProgramId();
    DriverConfig.setLogString("get program data from DB.", true);
    ecpCoreLSProgram = (EcpCoreLSProgram) lsProgramDao.getEcpCoreLSProgram(lsProgramId).get(0);
    DriverConfig.setLogString("click create groups link.", true);
    mainformElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(CREATE_EVENT_MAIN_FORM)));
    WebElement GroupsLink = mainformElement.findElement(By.id(demandSideManagementConfig.get(GROUPS_LINK)));
    GroupsLink.click();

    WaitUtil.waitUntil(SHORT_TIMEOUT);
    WaitUtil.waitUntil(5000);
    logger.info("check if create new group form is displayed.");
    WebElement newFormElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(GROUP_LIST_FORM)));
    isDisplayedById(DriverConfig.getDriver(), demandSideManagementConfig.get(CREATE_NEW_GROUP_LINK),
            SHORT_TIMEOUT);
    WebElement groupsFormElement = retrieveElementByAttributeValueByPassingElement(DriverConfig.getDriver(),
            newFormElement, TAG_ANCHOR, ATTR_ID, demandSideManagementConfig.get(CREATE_NEW_GROUP_LINK));
    groupsFormElement.click();
    WaitUtil.waitUntil(SHORT_TIMEOUT);

    isDisplayedById(DriverConfig.getDriver(), demandSideManagementConfig.get(CREATE_GROUP_FORM), SHORT_TIMEOUT);
    WebElement createGroupsFormElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(CREATE_GROUP_FORM)));
    WaitUtil.waitUntil(5000);
    isDisplayedById(DriverConfig.getDriver(), demandSideManagementConfig.get(RULE_NAME), SHORT_TIMEOUT);
    DriverConfig.setLogString("find the group name field and provide a name.", true);
    WebElement groupName = createGroupsFormElement
            .findElement(By.id(demandSideManagementConfig.get(RULE_NAME)));
    formatter = new SimpleDateFormat("MMddyyyyhhmma");
    eventDate = Calendar.getInstance();
    eventDate.setTimeZone(TimeZone.getTimeZone(ecpCoreLSProgram.getTimeZone()));
    eventDate.set(Calendar.DATE, Integer.parseInt(demandSideManagementConfig.get(ADD_EVENT_DATE_PART)));
    eventDate.set(Calendar.HOUR, ecpCoreLSProgram.getMinStartHour());

    if (ecpCoreLSProgram.getMinStartHour() >= 12)
        eventDate.set(Calendar.AM_PM, 1);
    else
        eventDate.set(Calendar.AM_PM, 0);

    String group_Name = "GT".concat(formatter.format(eventDate.getTime()));
    DriverConfig.setLogString("enter group name.", true);
    groupName.sendKeys(group_Name);
    DriverConfig.setLogString("enter group description.", true);
    createGroupsFormElement.findElement(By.id(demandSideManagementConfig.get(RULE_DESC)))
            .sendKeys("GT" + formatter.format(eventDate.getTime()));

    availableZipCodes = createGroupsFormElement.findElements(By.tagName("ul"));
    availableZipListElement = availableZipCodes.get(0);
    selectedZipListElement = availableZipCodes.get(1);
    availableZipCodeElements = availableZipListElement.findElements(By.tagName("li"));

    WebElement addBtn = retrieveElementByAttributeValueByPassingElement(DriverConfig.getDriver(),
            createGroupsFormElement, TAG_BUTTON, ATTR_TITLE, "Add");
    WebElement testRuleElement = retrieveElementByAttributeValueForSubElement(DriverConfig.getDriver(),
            createGroupsFormElement, TAG_ANCHOR, ATTR_ID, demandSideManagementConfig.get(TEST_RULE_LINK),
            SHORT_TIMEOUT);
    int locationsFound = 0;
    DriverConfig.setLogString("select available zipcodes.", true);
    while (locationsFound < 6) {
        createGroupsFormElement = DriverConfig.getDriver()
                .findElement(By.id(demandSideManagementConfig.get(CREATE_GROUP_FORM)));
        addBtn = retrieveElementByAttributeValueByPassingElement(DriverConfig.getDriver(),
                createGroupsFormElement, TAG_BUTTON, ATTR_TITLE, "Add");
        testRuleElement = retrieveElementByAttributeValueForSubElement(DriverConfig.getDriver(),
                createGroupsFormElement, TAG_ANCHOR, ATTR_ID, demandSideManagementConfig.get(TEST_RULE_LINK),
                SHORT_TIMEOUT);
        locationsFound = selectOptions(createGroupsFormElement, addBtn, testRuleElement);
    }
    DriverConfig.setLogString("click save group button.", true);
    retrieveElementByAttributeValueForSubElement(DriverConfig.getDriver(), createGroupsFormElement, TAG_BUTTON,
            ATTR_ID, demandSideManagementConfig.get(SAVE_RULE_BTN), SHORT_TIMEOUT).click();
    return group_Name;
}

From source file:com.ecofactor.qa.automation.insite.page.DemandSideManagementImpl.java

License:Open Source License

/**
 * Select options.//from   w w w.  j  av a2 s .c o m
 * 
 * @param createGroupsFormElement
 *            the create groups form element
 * @param addBtn
 *            the add btn
 * @param testRuleElement
 *            the test rule element
 * @return the integer
 */
public Integer selectOptions(WebElement createGroupsFormElement, WebElement addBtn,
        WebElement testRuleElement) {

    availableZipCodes = createGroupsFormElement.findElements(By.tagName("ul"));
    availableZipListElement = availableZipCodes.get(0);
    selectedZipListElement = availableZipCodes.get(1);
    availableZipCodeElements = availableZipListElement.findElements(By.tagName("li"));

    WebElement listElement = null;
    @SuppressWarnings("rawtypes")
    ListIterator element = availableZipCodeElements.listIterator();
    listElement = (WebElement) element.next();
    logger.info("zip code" + listElement.getText());
    listElement.click();
    smallWait();
    addBtn.click();
    smallWait();
    testRuleElement.click();
    smallWait();
    return Integer.parseInt(retrieveElementByAttributeValueByPassingElement(DriverConfig.getDriver(),
            createGroupsFormElement, "label", ATTR_ID, demandSideManagementConfig.get(NO_LOCATIONS_ELEMENT))
                    .getText().split(" ")[0].trim());
}

From source file:com.ecofactor.qa.automation.insite.page.DemandSideManagementImpl.java

License:Open Source License

/**
 * Create Event Method creates LS Event in a given LS Program. Start date ,
 * duration and mode (draft/save & schedule) for event creation are provided
 * as input ./* w  ww . ja  va2  s .c o  m*/
 * 
 * @param pastEvent
 *            the past event
 * @param startDate
 *            the start date
 * @param duration
 *            the duration
 * @param mode
 *            the mode
 * @param precoolOpted
 *            the precool opted
 * @param groupName
 *            the group name
 * @return the string
 * @throws ParseException
 *             the parse exception
 */
public String createEvent(final boolean pastEvent, final String startDate, final String duration,
        final String mode, final boolean precoolOpted, String groupName) throws ParseException {

    DriverConfig.setLogString("Start create new event.", true);
    formatter = new SimpleDateFormat("yyyyMMddhhmmss");
    WaitUtil.waitUntil(18000);
    // WaitUtil.waitUntil(10000);
    isDisplayedById(DriverConfig.getDriver(), demandSideManagementConfig.get(EVENT_LIST_PAGE_FORM_NAME),
            SHORT_TIMEOUT);
    formElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(EVENT_LIST_PAGE_FORM_NAME)));
    DriverConfig.setLogString("click create new event link.", true);
    WebElement newEventLink = formElement.findElement(By.linkText(demandSideManagementConfig.get(NEW_EVENT)));
    newEventLink.click();

    inputEventName = "Test_" + formatter.format(new java.util.Date());
    inputEventDesc = "Description for Test_" + formatter.format(new java.util.Date());
    isDisplayedById(DriverConfig.getDriver(), demandSideManagementConfig.get(EVENT_CREATE_FORM_NAME),
            SHORT_TIMEOUT);

    newEventWizardForm = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(EVENT_CREATE_FORM_NAME)));
    WaitUtil.waitUntil(5000);
    DriverConfig.setLogString("find event name field.", true);
    WebElement eventName = newEventWizardForm.findElement(By.id(demandSideManagementConfig.get(EVENT_NAME)));
    DriverConfig.setLogString("Enter event name." + inputEventName, true);
    eventName.sendKeys(inputEventName);
    DriverConfig.setLogString("find event description field & send values to it.", true);
    newEventWizardForm.findElement(By.tagName(TAG_TEXTAREA)).sendKeys(inputEventDesc);
    DriverConfig.setLogString("Event Name provided :" + inputEventName, true);
    DriverConfig.setLogString("Event Desc provided :" + inputEventDesc, true);
    DriverConfig.setLogString("Event Start date provided :" + startDate, true);
    DriverConfig.setLogString("find start date field and enter start date.", true);
    newEventWizardForm.findElement(By.id(demandSideManagementConfig.get(START_TIME))).clear();
    newEventWizardForm.findElement(By.id(demandSideManagementConfig.get(START_TIME))).sendKeys(startDate);
    roleManagement.clickDone();
    DriverConfig.setLogString("find event duration field.", true);
    isFormDisplayedById(DriverConfig.getDriver(), newEventWizardForm,
            demandSideManagementConfig.get(EVENT_DURATION_ELEMENT), SHORT_TIMEOUT);
    DriverConfig.setLogString("select duration.", true);
    selectOptionByValue(newEventWizardForm, demandSideManagementConfig.get(EVENT_DURATION_ELEMENT), duration);
    DriverConfig.setLogString("Event Duration provided :" + duration + " minutes.", true);

    WaitUtil.waitUntil(1000);
    WebElement precoolOption = newEventWizardForm.findElement(By.id(demandSideManagementConfig.get(PRECOOL)));

    newEventWizardForm.findElement(By.id(demandSideManagementConfig.get(EVENT_DURATION_ELEMENT))).click();
    DriverConfig.setLogString("select precool option if needed.", true);
    WaitUtil.waitUntil(SHORT_TIMEOUT);
    if (precoolOpted) {
        isFormElementClickableById(DriverConfig.getDriver(), demandSideManagementConfig.get(PRECOOL),
                MEDIUM_TIMEOUT);
        if (precoolOption.isSelected() == false)
            precoolOption.click();
    }
    smallWait();
    // DriverConfig.setLogString("Unselect the group for event.", true);
    // select groups
    WebElement selectGroupsForm = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(POPUP_FORM)));
    if (groupName != null) {
        DriverConfig.setLogString("select groups for event." + groupName, true);
        retrieveElementByAttributeValueByPassingElement(DriverConfig.getDriver(), selectGroupsForm, TAG_SPAN,
                ATTR_CLASS, demandSideManagementConfig.get(SELECT_GROUPS_CHECKBOX)).click();
        WebElement groupsTableElement = retrieveElementByAttributeValueByPassingElement(
                DriverConfig.getDriver(), selectGroupsForm, TAG_TBODY, ATTR_ID,
                demandSideManagementConfig.get(GROUP_LIST_TABLE));
        List<WebElement> groupRows = groupsTableElement.findElements(By.tagName("tr"));
        for (WebElement element : groupRows) {
            List<WebElement> groupColumns = element.findElements(By.tagName("td"));
            if (!groupColumns.isEmpty()) {
                WebElement checkBoxElement = groupColumns.get(0).findElement(By.tagName(TAG_INPUT));
                WebElement groupNameElement = groupColumns.get(1);
                if (groupNameElement.findElement(By.tagName(TAG_DIV)).getText().equalsIgnoreCase(groupName))
                    // select the group name check box
                    checkBoxElement.click();
            }
        }
    }
    // End Select groups
    DriverConfig.setLogString("Mode " + mode, true);
    smallWait();
    isFormDisplayedById(DriverConfig.getDriver(), newEventWizardForm,
            demandSideManagementConfig.get(EVENT_SAVE_BTN), MEDIUM_TIMEOUT);
    if (mode.equalsIgnoreCase(demandSideManagementConfig.get(EVENT_TYPE_DRAFT))) {
        WaitUtil.waitUntil(SHORT_TIMEOUT);
        DriverConfig.setLogString("click draft button.", true);
        newEventWizardForm.findElement(By.id(demandSideManagementConfig.get(EVENT_SAVE_BTN))).click();
    } else if (mode.equalsIgnoreCase(demandSideManagementConfig.get(EVENT_TYPE_SCHEDULED))) {
        WaitUtil.waitUntil(SHORT_TIMEOUT);
        DriverConfig.setLogString("click schedule button.", true);
        newEventWizardForm.findElement(By.id(demandSideManagementConfig.get(EVENT_SCHEDULED_BTN))).click();
    } else {
        smallWait();
        DriverConfig.setLogString("click cancel button.", true);
        newEventWizardForm.findElement(By.id(demandSideManagementConfig.get(EVENT_CANCEL_BTN))).click();
    }

    return inputEventName;
}