List of usage examples for org.openqa.selenium WebElement click
void click();
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; }