/* * This program is part of the OpenLMIS logistics management information system platform software. * Copyright © 2013 VillageReach * * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. *   * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details. * You should have received a copy of the GNU Affero General Public License along with this program.  If not, see http://www.gnu.org/licenses.  For additional information contact info@OpenLMIS.org.  */ package org.openlmis.pageobjects; import org.openlmis.UiUtils.TestWebDriver; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.How; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import java.util.List; import static com.thoughtworks.selenium.SeleneseTestBase.assertFalse; import static com.thoughtworks.selenium.SeleneseTestBase.assertTrue; import static com.thoughtworks.selenium.SeleneseTestNgHelper.assertEquals; import static org.openqa.selenium.support.How.ID; import static org.openqa.selenium.support.How.XPATH; public class UserPage extends FilterSearchPage { @FindBy(how = ID, using = "userAddNew") private static WebElement addNewButton = null; @FindBy(how = ID, using = "userName") private static WebElement userNameField = null; @FindBy(how = ID, using = "email") private static WebElement emailField = null; @FindBy(how = ID, using = "firstName") private static WebElement firstNameField = null; @FindBy(how = ID, using = "lastName") private static WebElement lastNameField = null; @FindBy(how = ID, using = "userSaveButton") private static WebElement saveButton = null; @FindBy(how = ID, using = "userCancelButton") private static WebElement cancelButton = null; @FindBy(how = ID, using = "userDisableButton") private static WebElement disableButton = null; @FindBy(how = ID, using = "userEnableButton") private static WebElement enableButton = null; @FindBy(how = ID, using = "searchUser") private static WebElement searchUserTextField = null; @FindBy(how = ID, using = "resetPassword") private static WebElement resetPasswordButton = null; @FindBy(how = ID, using = "password1") private static WebElement newPasswordField = null; @FindBy(how = ID, using = "password2") private static WebElement confirmPasswordField = null; @FindBy(how = ID, using = "resetPasswordDone") private static WebElement resetPasswordDone = null; @FindBy(how = ID, using = "button_OK") private static WebElement okButton = null; @FindBy(how = ID, using = "editUserLabel") private static WebElement editUserHeader = null; @FindBy(how = How.XPATH, using = "//form[@id='create-user']/div/div[1]/div[8]/div/ng-switch/span") private static WebElement verifiedLabel = null; @FindBy(how = ID, using = "expandAll") private static WebElement expandAllOption = null; @FindBy(how = ID, using = "collapseAll") private static WebElement collapseAllOption = null; @FindBy(how = ID, using = "homeFacilityRoles") private static WebElement homeFacilityRolesAccordion = null; @FindBy(how = ID, using = "programSelected") private static WebElement homeFacilityPrograms = null; @FindBy(how = How.XPATH, using = "(//input[@type='text'])[15]") private static WebElement roleInputFieldHomeFacility = null; @FindBy(how = How.XPATH, using = "//div[@class='select2-result-label']/span") private static WebElement rolesSelectField = null; @FindBy(how = ID, using = "addHomeRole") private static WebElement addHomeFacilityRolesButton = null; @FindBy(how = ID, using = "supervisoryRoles") private static WebElement supervisoryRolesAccordion = null; @FindBy(how = ID, using = "programToSupervise") private static WebElement programsToSupervise = null; @FindBy(how = ID, using = "supervisoryNodeToSupervise") private static WebElement supervisoryNodeToSupervise = null; @FindBy(how = How.XPATH, using = "(//input[@type='text'])[17]") private static WebElement rolesInputFieldSupervisoryRole = null; @FindBy(how = ID, using = "addSupervisoryRole") private static WebElement addSupervisoryRoleButton = null; @FindBy(how = ID, using = "orderFulfillmentRoles") private static WebElement orderFulfillmentRolesAccordion = null; @FindBy(how = ID, using = "reportingRoles") private static WebElement reportingRolesAccordion = null; @FindBy(how = How.XPATH, using = "(//input[@type='text'])[19]") private static WebElement rolesInputFieldWarehouse = null; @FindBy(how = XPATH, using = "//div[@id='s2id_reportingRoles']/ul/li[@class='select2-search-field']/input") private static WebElement rolesInputFieldReporting = null; @FindBy(how = ID, using = "warehouseToSelect") private static WebElement warehouseToSelect = null; @FindBy(how = ID, using = "addFulfillmentRole") private static WebElement addWarehouseRoleButton = null; @FindBy(how = ID, using = "allocationRoles") private static WebElement deliveryZonesAccordion = null; @FindBy(how = ID, using = "deliveryZoneToSelect") private static WebElement zoneToDelivery = null; @FindBy(how = ID, using = "programToDelivery") private static WebElement programToDeliver = null; @FindBy(how = How.XPATH, using = "(//input[@type='text'])[21]") private static WebElement rolesInputFieldMDeliveryZone = null; @FindBy(how = How.XPATH, using = "(//input[@type='text'])[18]") private static WebElement rolesInputFieldDeliveryZone = null; @FindBy(how = ID, using = "addAllocationRole") private static WebElement addDeliveryZoneRoleButton = null; @FindBy(how = ID, using = "adminRoles") private static WebElement adminAndGeneralOperationsRolesAccordion = null; @FindBy(how = XPATH, using = "//*[@id='s2id_adminRoles']/ul/li[@class='select2-search-field']/input") private static WebElement adminRolesInputField = null; @FindBy(how = ID, using = "viewHereLink") private static WebElement viewHereLink = null; @FindBy(how = ID, using = "saveSuccessMsgDiv") private static WebElement successMessage = null; @FindBy(how = How.XPATH, using = "//input[contains(text(),'Remove')]") private static WebElement removeButton = null; @FindBy(how = How.XPATH, using = "//div[6]/div[2]/ng-include/div/div[1]/div[2]/div[1]/div/label[@class='ng-binding']") private static WebElement addedDeliveryZoneLabel = null; @FindBy(how = ID, using = "restrictLoginYes") private static WebElement restrictLoginYesOption = null; @FindBy(how = ID, using = "restrictLoginNo") private static WebElement restrictLoginNoOption = null; @FindBy(how = ID, using = "associatedFacilityField") private static WebElement associatedFacilityField = null; @FindBy(how = ID, using = "searchIcon") private static WebElement searchIcon = null; @FindBy(how = ID, using = "clearFacility") private static WebElement clearFacility = null; @FindBy(how = ID, using = "saveErrorMsgDiv") private static WebElement saveErrorMsg = null; @FindBy(how = ID, using = "oneResultMessage") private static WebElement oneResultMessage = null; @FindBy(how = ID, using = "noResultMessage") private static WebElement noResultMessage = null; @FindBy(how = ID, using = "nResultsMessage") private static WebElement nResultsMessage = null; @FindBy(how = ID, using = "closeButton") private static WebElement closeButton = null; @FindBy(how = ID, using = "nameHeader") private static WebElement nameHeader = null; @FindBy(how = ID, using = "userNameHeader") private static WebElement userNameHeader = null; @FindBy(how = ID, using = "emailHeader") private static WebElement emailHeader = null; @FindBy(how = ID, using = "verifiedHeader") private static WebElement verifiedHeader = null; @FindBy(how = ID, using = "activeHeader") private static WebElement activeHeader = null; @FindBy(how = ID, using = "dialogMessage") private static WebElement dialogMessage = null; @FindBy(how = ID, using = "searchUserLabel") private static WebElement searchUserLabel = null; public UserPage(TestWebDriver driver) { super(driver); PageFactory.initElements(new AjaxElementLocatorFactory(TestWebDriver.getDriver(), 1), this); testWebDriver.setImplicitWait(1); } public void searchUser(String user) { testWebDriver.waitForElementToAppear(searchUserTextField); sendKeys(searchUserTextField, user); } public void resetPassword(String newPassword, String confirmPassword) { testWebDriver.waitForElementToAppear(resetPasswordButton); resetPasswordButton.click(); testWebDriver.waitForElementToAppear(newPasswordField); sendKeys(newPasswordField, newPassword); testWebDriver.waitForElementToAppear(confirmPasswordField); sendKeys(confirmPasswordField, confirmPassword); testWebDriver.waitForElementToBeEnabled(resetPasswordDone); resetPasswordDone.click(); } public void enterUserDetails(String userName, String email, String firstName, String lastName) { testWebDriver.waitForElementToAppear(addNewButton); addNewButton.click(); testWebDriver.waitForElementToAppear(userNameField); sendKeys(userNameField, userName); testWebDriver.waitForElementToAppear(emailField); sendKeys(emailField, email); testWebDriver.waitForElementToAppear(firstNameField); sendKeys(firstNameField, firstName); testWebDriver.waitForElementToAppear(lastNameField); sendKeys(lastNameField, lastName); testWebDriver.handleScroll(); clickRestrictLoginNo(); assertFalse(resetPasswordButton.isDisplayed()); assertFalse(disableButton.isDisplayed()); testWebDriver.waitForElementToAppear(saveButton); saveButton.click(); testWebDriver.waitForElementToAppear(viewHereLink); } public String getSuccessMessage() { testWebDriver.waitForElementToAppear(successMessage); return successMessage.getText(); } public void enterUserHomeFacility(String facilityCode) { if (clearFacility.isDisplayed()) { clearFacility.click(); } testWebDriver.sleep(500); testWebDriver.handleScrollByPixels(0, 1600); testWebDriver.sleep(500); associatedFacilityField.click(); searchFacility(facilityCode); } public void ExpandAll() { testWebDriver.waitForElementToAppear(expandAllOption); expandAllOption.click(); } public void collapseAll() { testWebDriver.waitForElementToAppear(collapseAllOption); collapseAllOption.click(); } public void clickRestrictLoginYes() { testWebDriver.waitForElementToAppear(restrictLoginYesOption); restrictLoginYesOption.click(); } public void clickRestrictLoginNo() { testWebDriver.waitForElementToAppear(restrictLoginNoOption); restrictLoginNoOption.click(); } public boolean isProgramsToSuperviseDisplayed() { try { testWebDriver.waitForElementToAppear(programsToSupervise); } catch (TimeoutException e) { return false; } catch (NoSuchElementException e) { return false; } return programsToSupervise.isDisplayed(); } public boolean isProgramToDeliverDisplayed() { try { testWebDriver.waitForElementToAppear(programToDeliver); } catch (TimeoutException e) { return false; } catch (NoSuchElementException e) { return false; } return programToDeliver.isDisplayed(); } public boolean isWarehouseToSelectDisplayed() { try { testWebDriver.waitForElementToAppear(warehouseToSelect); } catch (TimeoutException e) { return false; } catch (NoSuchElementException e) { return false; } return warehouseToSelect.isDisplayed(); } public void enterMyFacilityAndMySupervisedFacilityData(String facilityCode, String program1, String node, String role, String roleType) { assertFalse(homeFacilityRolesAccordion.isDisplayed()); if (!roleType.equals("ADMIN")) { enterUserHomeFacility(facilityCode); testWebDriver.waitForAjax(); selectFacility(1); testWebDriver.waitForAjax(); testWebDriver.scrollAndClick(homeFacilityRolesAccordion); testWebDriver.sleep(500); testWebDriver.scrollToElement(homeFacilityPrograms); testWebDriver.selectByVisibleText(homeFacilityPrograms, program1); testWebDriver.waitForElementToAppear(roleInputFieldHomeFacility); testWebDriver.scrollAndClick(roleInputFieldHomeFacility); sendKeys(roleInputFieldHomeFacility, role); testWebDriver.waitForElementToAppear(rolesSelectField); testWebDriver.scrollAndClick(rolesSelectField); testWebDriver.scrollAndClick(addHomeFacilityRolesButton); testWebDriver.waitForElementToAppear(supervisoryRolesAccordion); testWebDriver.scrollAndClick(supervisoryRolesAccordion); testWebDriver.sleep(500); testWebDriver.waitForElementToAppear(programsToSupervise); testWebDriver.selectByVisibleText(programsToSupervise, program1); testWebDriver.waitForElementToAppear(supervisoryNodeToSupervise); testWebDriver.selectByVisibleText(supervisoryNodeToSupervise, node); testWebDriver.sleep(1000); testWebDriver.handleScroll(); testWebDriver.waitForElementToAppear(rolesInputFieldSupervisoryRole); testWebDriver.scrollAndClick(rolesInputFieldSupervisoryRole); sendKeys(rolesInputFieldSupervisoryRole, role); testWebDriver.waitForElementToAppear(rolesSelectField); testWebDriver.scrollAndClick(rolesSelectField); assertEquals(testWebDriver.getFirstSelectedOption(supervisoryNodeToSupervise).getText(), node); assertEquals(testWebDriver.getFirstSelectedOption(programsToSupervise).getText(), program1); testWebDriver.waitForElementToAppear(addSupervisoryRoleButton); testWebDriver.scrollAndClick(addSupervisoryRoleButton); } else { testWebDriver.handleScroll(); testWebDriver.waitForElementToAppear(adminAndGeneralOperationsRolesAccordion); testWebDriver.scrollAndClick(adminAndGeneralOperationsRolesAccordion); testWebDriver.sleep(500); testWebDriver.waitForElementToAppear(adminRolesInputField); testWebDriver.scrollAndClick(adminRolesInputField); sendKeys(adminRolesInputField, role); testWebDriver.waitForElementToAppear(rolesSelectField); testWebDriver.scrollAndClick(rolesSelectField); } } public void verifyUserUpdated(String firstName, String lastName) { testWebDriver.sleep(1000); assertTrue("User '" + firstName + " " + lastName + "' has been successfully updated message is not getting displayed", successMessage.isDisplayed()); } public void assignWarehouse(String warehouse, String role) { testWebDriver.waitForElementToAppear(orderFulfillmentRolesAccordion); orderFulfillmentRolesAccordion.click(); testWebDriver.sleep(500); testWebDriver.waitForElementToAppear(warehouseToSelect); testWebDriver.selectByVisibleText(warehouseToSelect, warehouse); testWebDriver.waitForElementToAppear(rolesInputFieldWarehouse); rolesInputFieldWarehouse.click(); rolesInputFieldWarehouse.clear(); rolesInputFieldWarehouse.sendKeys(role); testWebDriver.waitForElementToAppear(rolesSelectField); rolesSelectField.click(); assertEquals(testWebDriver.getFirstSelectedOption(warehouseToSelect).getText(), warehouse); testWebDriver.waitForElementToAppear(addWarehouseRoleButton); addWarehouseRoleButton.click(); testWebDriver.sleep(1000); verifyWarehouseSelectedNotAvailable(warehouse); testWebDriver.waitForElementToAppear(orderFulfillmentRolesAccordion); orderFulfillmentRolesAccordion.click(); testWebDriver.sleep(500); } public void assignReportingRole(String role) { testWebDriver.waitForElementToAppear(reportingRolesAccordion); reportingRolesAccordion.click(); testWebDriver.sleep(500); testWebDriver.waitForElementToAppear(rolesInputFieldReporting); rolesInputFieldReporting.click(); sendKeys(rolesInputFieldReporting, role); testWebDriver.waitForElementToAppear(rolesSelectField); rolesSelectField.click(); testWebDriver.sleep(1000); } public void assignAdminRole(String role) { testWebDriver.waitForElementToAppear(adminAndGeneralOperationsRolesAccordion); testWebDriver.scrollAndClick(adminAndGeneralOperationsRolesAccordion); testWebDriver.sleep(500); testWebDriver.waitForElementToAppear(adminRolesInputField); testWebDriver.scrollAndClick(adminRolesInputField); sendKeys(adminRolesInputField, role); testWebDriver.waitForElementToAppear(rolesSelectField); rolesSelectField.click(); testWebDriver.sleep(1000); } public void verifyMessage(String message) { testWebDriver.waitForElementToAppear(successMessage); assertEquals(successMessage.getText(), message); } public void enterDeliveryZoneData(String deliveryZoneCode, String program, String role) { testWebDriver.handleScroll(); testWebDriver.getElementByXpath("//a[contains(text(),'Delivery zones')]").click(); testWebDriver.waitForElementToAppear(zoneToDelivery); testWebDriver.selectByVisibleText(zoneToDelivery, deliveryZoneCode); testWebDriver.waitForElementToAppear(programToDeliver); testWebDriver.selectByVisibleText(programToDeliver, program); testWebDriver.waitForElementToAppear(rolesInputFieldMDeliveryZone); rolesInputFieldMDeliveryZone.click(); rolesInputFieldMDeliveryZone.clear(); rolesInputFieldMDeliveryZone.sendKeys(role); rolesInputFieldMDeliveryZone.sendKeys(Keys.RETURN); addDeliveryZoneRoleButton.click(); } public void enterDeliveryZoneDataWithoutHomeAndSupervisoryRolesAssigned(String deliveryZoneCode, String program, String role) { testWebDriver.handleScroll(); deliveryZonesAccordion.click(); testWebDriver.sleep(500); testWebDriver.waitForElementToAppear(zoneToDelivery); testWebDriver.selectByVisibleText(zoneToDelivery, deliveryZoneCode); testWebDriver.waitForElementToAppear(programToDeliver); testWebDriver.selectByVisibleText(programToDeliver, program); testWebDriver.waitForElementToAppear(rolesInputFieldDeliveryZone); rolesInputFieldDeliveryZone.click(); rolesInputFieldDeliveryZone.clear(); rolesInputFieldDeliveryZone.sendKeys(role); rolesInputFieldDeliveryZone.sendKeys(Keys.RETURN); testWebDriver.waitForElementToAppear(addDeliveryZoneRoleButton); addDeliveryZoneRoleButton.click(); } public void removeRole(int indexOfCancelIcon, boolean adminRole) { int counter = 1; List<WebElement> closeButtons = testWebDriver.getElementsByXpath("//a[@class='select2-search-choice-close']"); for (WebElement closeButton : closeButtons) { if (counter == indexOfCancelIcon) { closeButton.click(); if (adminRole) clickOk(); testWebDriver.sleep(100); counter++; } } } public void clickCancelButton() { testWebDriver.waitForElementToAppear(cancelButton); cancelButton.click(); } public void clickSaveButton() { testWebDriver.waitForElementToBeEnabled(saveButton); saveButton.click(); } public void disableUser(String userName) { testWebDriver.waitForElementToBeEnabled(disableButton); disableButton.click(); assertEquals(testWebDriver.getElementByXpath("//*[@id='disableUserDialog']/div[1]/h3").getText(), "Disable user"); assertEquals(dialogMessage.getText(), "User \"" + userName + "\" will be disabled"); clickOk(); } public void clickEnableButton() { testWebDriver.waitForElementToBeEnabled(enableButton); enableButton.click(); clickOk(); } public void verifyRolePresent(String roleName) { testWebDriver.sleep(500); WebElement roleElement = testWebDriver.getElementByXpath("//div[contains(text(),'" + roleName + "')]"); assertTrue(roleName + " should be displayed", roleElement.isDisplayed()); } public void verifyRoleNotPresent(String roleName) { boolean rolePresent; try { testWebDriver.sleep(500); WebElement element = testWebDriver.getElementByXpath("//div[contains(text(),'" + roleName + "')]"); rolePresent = element.isDisplayed(); } catch (ElementNotVisibleException e) { rolePresent = false; } catch (NoSuchElementException e) { rolePresent = false; } assertFalse(rolePresent); } public String getAllProgramsToSupervise() { testWebDriver.waitForElementToAppear(programsToSupervise); return programsToSupervise.getText(); } public String getAllProgramsHomeFacility() { testWebDriver.waitForElementToAppear(homeFacilityPrograms); return homeFacilityPrograms.getText(); } public String getAllWarehouseToSelect() { testWebDriver.waitForElementToAppear(warehouseToSelect); return warehouseToSelect.getText(); } public void clickViewHere() { testWebDriver.waitForElementToAppear(viewHereLink); viewHereLink.click(); testWebDriver.waitForElementToAppear(editUserHeader); } public void clickOk() { testWebDriver.waitForElementToAppear(okButton); okButton.click(); } public void verifyRemoveNotPresent() { boolean removePresent; try { testWebDriver.sleep(500); removeButton.isDisplayed(); removePresent = true; } catch (ElementNotVisibleException e) { removePresent = false; } catch (NoSuchElementException e) { removePresent = false; } assertFalse(removePresent); } public void clickRemoveButtonWithOk(int removeButtonNumber) { testWebDriver.sleep(500); testWebDriver.getElementByXpath("(//input[@value='Remove'])[" + removeButtonNumber + "]").click(); clickOk(); } public String getAddedDeliveryZoneLabel() { testWebDriver.waitForElementToAppear(addedDeliveryZoneLabel); return addedDeliveryZoneLabel.getText(); } public String getVerifiedLabel() { testWebDriver.waitForElementToAppear(verifiedLabel); return verifiedLabel.getText(); } public void clickWarehouseRolesAccordion() { testWebDriver.waitForElementToAppear(orderFulfillmentRolesAccordion); orderFulfillmentRolesAccordion.click(); testWebDriver.sleep(500); } public void clickHomeFacilityRolesAccordion() { testWebDriver.waitForElementToAppear(homeFacilityRolesAccordion); homeFacilityRolesAccordion.click(); testWebDriver.sleep(500); // testWebDriver.refresh(); } public void clickSupervisoryRolesAccordion() { testWebDriver.waitForElementToAppear(supervisoryRolesAccordion); supervisoryRolesAccordion.click(); testWebDriver.sleep(500); } public void clickDeliveryZonesAccordion() { testWebDriver.waitForElementToAppear(deliveryZonesAccordion); deliveryZonesAccordion.click(); testWebDriver.sleep(500); } private void verifyWarehouseSelectedNotAvailable(String warehouse1) { assertFalse(getAllWarehouseToSelect().contains(warehouse1)); } public void clickSearchIcon() { testWebDriver.waitForElementToAppear(searchIcon); searchIcon.click(); } public void clickUserName(int rowNumber) { WebElement element = testWebDriver.getElementById("name" + (rowNumber - 1)); testWebDriver.waitForElementToAppear(element); element.click(); } public void clickResetPasswordButton() { testWebDriver.waitForElementToAppear(resetPasswordButton); resetPasswordButton.click(); } public String getSaveErrorMessage() { testWebDriver.waitForElementToAppear(saveErrorMsg); return saveErrorMsg.getText(); } public String getOneResultMessage() { testWebDriver.waitForElementToAppear(oneResultMessage); return oneResultMessage.getText(); } public String getNResultsMessage() { testWebDriver.waitForElementToAppear(nResultsMessage); return nResultsMessage.getText(); } public String getNoResultMessage() { testWebDriver.waitForElementToAppear(noResultMessage); return noResultMessage.getText(); } public String getNameHeader() { testWebDriver.waitForElementToAppear(nameHeader); return nameHeader.getText(); } public String getUserNameHeader() { testWebDriver.waitForElementToAppear(userNameHeader); return userNameHeader.getText(); } public String getEmailHeader() { testWebDriver.waitForElementToAppear(emailHeader); return emailHeader.getText(); } public String getVerifiedHeader() { testWebDriver.waitForElementToAppear(verifiedHeader); return verifiedHeader.getText(); } public String getActiveHeader() { testWebDriver.waitForElementToAppear(activeHeader); return activeHeader.getText(); } public String getName(int rowNumber) { WebElement element = testWebDriver.getElementById("name" + (rowNumber - 1)); testWebDriver.waitForElementToAppear(element); return element.getText(); } public String getUserName(int rowNumber) { WebElement element = testWebDriver.getElementById("userName" + (rowNumber - 1)); testWebDriver.waitForElementToAppear(element); return element.getText(); } public String getEmail(int rowNumber) { WebElement element = testWebDriver.getElementById("email" + (rowNumber - 1)); testWebDriver.waitForElementToAppear(element); return element.getText(); } public boolean getIsVerified(int rowNumber) { WebElement element = testWebDriver.getElementById("verifiedIconOk" + (rowNumber - 1)); return element.isDisplayed(); } public boolean getIsActive(int rowNumber) { WebElement element = testWebDriver.getElementById("activeIconOk" + (rowNumber - 1)); return element.isDisplayed(); } public void clickCrossIcon() { testWebDriver.waitForElementToAppear(closeButton); closeButton.click(); testWebDriver.refresh(); } public void clickHomeFacilityField() { testWebDriver.waitForElementToAppear(associatedFacilityField); associatedFacilityField.click(); } public void clearFacility() { testWebDriver.waitForElementToAppear(clearFacility); clearFacility.click(); okButton.click(); } public boolean isHomeFacilityAccordionDisplayed() { return homeFacilityRolesAccordion.isDisplayed(); } public boolean isNameHeaderPresent() { return nameHeader.isDisplayed(); } public String getSearchUserLabel() { testWebDriver.waitForElementToAppear(searchUserLabel); return searchUserLabel.getText(); } public String getSearchPlaceHolder() { testWebDriver.waitForElementToAppear(searchUserTextField); return searchUserTextField.getAttribute("placeholder"); } }