Example usage for org.openqa.selenium WebElement findElements

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

Introduction

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

Prototype

@Override
List<WebElement> findElements(By by);

Source Link

Document

Find all elements within the current context using the given mechanism.

Usage

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

License:Open Source License

/**
 * Collect program names./*from  www  . j  a  v a  2s  .  c  o m*/
 * 
 * @return the list
 * @see com.ecofactor.qa.automation.insite.page.DemandSideManagement#collectProgramNames()
 */
@Override
public List<String> collectProgramNames() {

    logger.info("entered collect pgms");
    if (formElement == null)
        loadForm();
    List<String> pgmNames = new ArrayList<String>();

    WebElement pgmListForm = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(PROGRAM_LIST_FORM)));
    WebElement programsListTable = retrieveElementByAttributeValueContainsForSubElement(
            DriverConfig.getDriver(), pgmListForm, TAG_TBODY, ATTR_ID,
            demandSideManagementConfig.get(PROGRAM_LIST_FORM_TABLEID), SHORT_TIMEOUT);

    List<WebElement> programsList = programsListTable.findElements(By.tagName(TAG_ANCHOR));

    for (WebElement programElement : programsList) {
        pgmNames.add(programElement.getText());
        logger.info("Program Name: " + programElement.getText());
        logger.info("programElement.getText(): " + programElement.getText());
    }
    logger.info("exit collect pgms");
    return pgmNames;
}

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

License:Open Source License

/**
 * Gets the program details.Retrieve the program data as displayed in the
 * screen.//from  ww w.  jav a 2 s  . co  m
 * 
 * @return the program details
 * @throws ParseException
 *             the parse exception
 */
public Map<String, Object> getProgramDetails() throws ParseException {

    formatter = new SimpleDateFormat("MM-dd-yyyy");
    DriverConfig.getDriver().switchTo().defaultContent();
    smallWait();
    DriverConfig.getDriver().switchTo().frame(0);
    WaitUtil.waitUntil(SHORT_TIMEOUT);
    logger.info("check if the form is displayed.");
    WebElement form1 = DriverConfig.getDriver().findElement(By.id(demandSideManagementConfig.get(FORM_ID)));
    WebElement programId = form1.findElement(By.id(demandSideManagementConfig.get(PROGRAM_ID_FIELDS_ID)));

    logger.info("programid: " + programId.getAttribute(ATTR_VALUE));
    lsProgramId = Integer.parseInt(programId.getAttribute(ATTR_VALUE));

    programPropertiesMap.put("ProgramId", programId.getAttribute(ATTR_VALUE));

    WebElement propertiesFormElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(PROGRAM_TITLE_SPAN_ID)));
    logger.info("program name as displayed in Ui : " + propertiesFormElement.getText());

    programPropertiesMap.put("ProgramName", propertiesFormElement.getText());
    WebElement programProperties = DriverConfig.getDriver()
            .findElements(By.className(demandSideManagementConfig.get(PROGRAM_PROPERTIES_DIV_CLASS))).get(1);
    List<WebElement> propertyList = programProperties.findElements(By.tagName(TAG_TD));

    Iterator<WebElement> iterator = propertyList.listIterator();

    while (iterator.hasNext()) {
        programPropertiesMap.put(iterator.next().getText().replaceAll(" ", "_"), iterator.next().getText());
    }

    return programPropertiesMap;

}

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

License:Open Source License

/**
 * Click first program.Find the first LS program and click it.
 * //from  ww w.j a  va  2 s.c  o m
 * @throws ParseException
 *             the parse exception
 */
public void clickFirstProgram() throws ParseException {

    WaitUtil.waitUntil(SHORT_TIMEOUT);
    DriverConfig.getDriver().switchTo().frame(0);
    logger.info("check if program list form is displayed.");
    formElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(PROGRAM_LIST_FORM)));

    WebElement tableElement = formElement
            .findElement(By.id(demandSideManagementConfig.get(PROGRAM_LIST_FORM_TABLEID)));
    DriverConfig.setLogString("select the first program.", true);
    List<WebElement> columnElements = tableElement
            .findElements(By.className(demandSideManagementConfig.get(PROGRAM_DIV_CLASS)));
    if (columnElements.size() > 0) {
        DriverConfig.setLogString(
                "Program Name: " + columnElements.get(0).findElement(By.tagName(TAG_ANCHOR)).getText(), true);
        columnElements.get(0).findElement(By.tagName(TAG_ANCHOR)).click();
    }

}

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

License:Open Source License

/**
 * Test available zipcodes are valid./*from   w ww. j  ava2  s  . 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.//  w  w  w .ja va 2 s . co  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./*  w w  w  .j  a v a2 s  .co  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

/**
 * Gets the page size./* ww  w. j a va  2 s .  com*/
 * 
 * @param eventListTable
 *            the event list table
 * @return the page size
 */
public Integer getPageSize(WebElement eventListTable) {

    DriverConfig.setLogString("get the page size displayed in screen.", true);
    WebElement pageSize = retrieveElementByAttributeValueForSubElement(DriverConfig.getDriver(), eventListTable,
            TAG_SPAN, ATTR_CLASS, demandSideManagementConfig.get(CURRENT_PAGINATOR), LONG_TIMEOUT);
    String eventListElement = pageSize.getText();
    log(eventListElement.substring(eventListElement.indexOf("of ") + 3, eventListElement.length() - 1));
    String pageLength = eventListElement.substring(eventListElement.indexOf("of ") + 3,
            eventListElement.length() - 1);
    WaitUtil.waitUntil(1000);
    logger.info("get the paginator Bottom UI Element.");
    WebElement paginatorBottomElement = retrieveElementByAttributeValueForSubElement(DriverConfig.getDriver(),
            eventListTable, "td", ATTR_ID, demandSideManagementConfig.get(EVENT_PAGINATION_BOTTOM_ELEMENT),
            LONG_TIMEOUT);
    WaitUtil.waitUntil(1000);
    List<WebElement> paginatorItems = paginatorBottomElement.findElements(By.tagName(TAG_SPAN));
    WaitUtil.waitUntil(1000);
    paginatorItems.get(paginatorItems.size() - 1).click();
    WaitUtil.waitUntil(SHORT_TIMEOUT);
    logger.info("page size is " + pageLength);
    return Integer.parseInt(pageLength);
}

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

License:Open Source License

/**
 * Test event pagination limit./*www. j a  v a2 s .  c om*/
 * 
 * @param programName
 *            the program name
 * @param duration
 *            the duration
 * @param eventMode
 *            the event mode
 * @param precoolOpted
 *            the precool opted
 * @param eventCheckCount
 *            the event check count
 * @throws ParseException
 *             the parse exception
 */

public void testEventPaginationLimit(final String programName, final String duration, final String eventMode,
        final boolean precoolOpted, Integer eventCheckCount) throws ParseException {

    int i = 0;
    int eventCount = 0;
    int rowCount = 0;
    WebElement eventListTable = null;
    WebElement eventListTableDataRows = null;
    List<WebElement> paginationSection = null;
    List<WebElement> eventRows;
    Integer totalPagesDisplayed = 0;

    pickGivenProgram(programName);
    WaitUtil.waitUntil(SHORT_TIMEOUT);

    ecpCoreLSProgram = new EcpCoreLSProgram();
    lsProgramId = getProgramId();
    DriverConfig.setLogString("get program details from DB.", true);
    ecpCoreLSProgram = (EcpCoreLSProgram) lsProgramDao.getEcpCoreLSProgram(lsProgramId).get(0);

    logger.info("get the event list page form element.");
    formElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(EVENT_LIST_PAGE_FORM_NAME)));
    eventListTable = formElement.findElement(By.id(demandSideManagementConfig.get(FORM_EVENT_LIST_TABLE)));
    paginationSection = eventListTable
            .findElements(By.id(demandSideManagementConfig.get(FORM_EVENT_LIST_TABLE_PAGINATOR_BOTTOM)));

    if (paginationSection.size() > 0)
        totalPagesDisplayed = getPageSize(eventListTable);
    mediumWait();

    formElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(EVENT_LIST_PAGE_FORM_NAME)));
    eventListTable = formElement.findElement(By.id(demandSideManagementConfig.get(FORM_EVENT_LIST_TABLE)));

    eventListTableDataRows = formElement
            .findElement(By.id(demandSideManagementConfig.get(FORM_EVENT_LIST_PAGINATION_DATA)));
    eventRows = eventListTableDataRows.findElements(By.tagName("tr"));
    rowCount = eventRows.size();

    eventCount = 10 - rowCount;

    if (eventCheckCount == 11) {
        eventCount = 10 - rowCount;
        eventCount++;
    }

    logger.info("event Check Count: " + eventCheckCount);
    logger.info("event Count: " + eventCount);
    logger.info("pagination Section size: " + paginationSection.size());
    logger.info("Total pages: " + totalPagesDisplayed);
    logger.info("Row count: " + rowCount);

    while (i < eventCount) {
        formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm a");
        eventDate = Calendar.getInstance();
        eventDate.setTimeZone(TimeZone.getTimeZone(ecpCoreLSProgram.getTimeZone()));
        logger.info("program  minimum start time :" + ecpCoreLSProgram.getMinStartHour());
        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);

        createEvent(false, formatter.format(eventDate.getTime()), duration, eventMode, precoolOpted, null);
        WaitUtil.waitUntil(5000);
        i++;
    }
    smallWait();
    eventListTable = formElement.findElement(By.id(demandSideManagementConfig.get(FORM_EVENT_LIST_TABLE)));
    paginationSection = eventListTable
            .findElements(By.id(demandSideManagementConfig.get(FORM_EVENT_LIST_TABLE_PAGINATOR_BOTTOM)));
    DriverConfig.setLogString("check if new page displayed if event count greater than 10.", true);
    if (eventCheckCount == 10) {
        if (paginationSection.size() > 0) {
            Assert.assertTrue(totalPagesDisplayed.equals(getPageSize(eventListTable)),
                    "page size is different");
        } else {
            Assert.assertTrue(totalPagesDisplayed == 0, "page count is not zero");
        }
    } else {
        if (paginationSection.size() > 0) {
            Assert.assertFalse(totalPagesDisplayed.equals(getPageSize(eventListTable)),
                    "page size is different");
        } else {
            Assert.assertTrue(totalPagesDisplayed > 0, "page count is less than zero");
        }
    }

}

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.java2 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;
}

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

License:Open Source License

/**
 * select Event Link Initiates event search by loading event list page.
 * /*from  www. j  a v a  2  s.co m*/
 * @param inputEventName
 *            the input event name
 */
public void selectEventLink(String inputEventName) {

    DriverConfig.setLogString("Select the event " + inputEventName + " from the list.", true);
    loadPageFrame();
    WaitUtil.waitUntil(10000);
    logger.info("check if event list form displayed.");
    WebElement formElement = DriverConfig.getDriver()
            .findElement(By.id(demandSideManagementConfig.get(EVENT_LIST_PAGE_FORM_NAME)));
    isDisplayedById(DriverConfig.getDriver(), demandSideManagementConfig.get(EVENT_LIST_PAGE_FORM_NAME),
            SHORT_TIMEOUT);
    mediumWait();
    logger.info("check if event pagination element is displayed.", true);
    if (formElement.findElements(By.id(demandSideManagementConfig.get(EVENT_PAGINATION_BOTTOM_ELEMENT)))
            .size() > 0) {
        isFormDisplayedById(DriverConfig.getDriver(), formElement,
                demandSideManagementConfig.get(EVENT_PAGINATION_BOTTOM_ELEMENT), SHORT_TIMEOUT);
        WebElement eventIndexElement = retrieveElementByAttributeValue(DriverConfig.getDriver(), TAG_TD,
                ATTR_ID, demandSideManagementConfig.get(EVENT_PAGINATION_BOTTOM_ELEMENT));
        if (eventIndexElement != null) {
            WebElement pageIndexElement = formElement
                    .findElement(By.id(demandSideManagementConfig.get(EVENT_PAGINATION_BOTTOM_ELEMENT)));
            List<WebElement> pageIndexes = pageIndexElement.findElements(By.tagName(TAG_SPAN));
            lastPageElement = pageIndexes.get(pageIndexes.size() - 1);
            if (!lastPageElement.getAttribute(ATTR_CLASS).endsWith(demandSideManagementConfig.get(DISABLED))) {
                lastPageElement.click();
                smallWait();
            }
            nextPageElement = pageIndexes.get(pageIndexes.size() - 4);
            iterateEventList();
        }
    } else {
        logger.info("there is no pagination select event in the default page.");
        WebElement eventElement = retrieveElementByTagTextForSubElement(DriverConfig.getDriver(), formElement,
                TAG_ANCHOR, inputEventName);
        if (eventElement != null) {
            smallWait();
            DriverConfig.setLogString("select the event link.", true);
            eventElement.click();
            eventfound = true;
        }
    }
    if (eventfound == false) {
        DriverConfig.setLogString("Event name '" + inputEventName + "' not found.", true);
    }
    loadPageFrame();
    isDisplayedById(DriverConfig.getDriver(), demandSideManagementConfig.get(EVENT_CREATE_FORM_NAME),
            SHORT_TIMEOUT);
}