diff --git a/smp-ui-tests/src/main/java/pages/components/Sidebar.java b/smp-ui-tests/src/main/java/pages/components/Sidebar.java index 8cc8d72739d8671abc1f215fa4f8429d63723d9d..072bc772fa135ab77150ea210b1a3896716e94f5 100644 --- a/smp-ui-tests/src/main/java/pages/components/Sidebar.java +++ b/smp-ui-tests/src/main/java/pages/components/Sidebar.java @@ -5,6 +5,7 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import pages.components.baseComponents.Header; import pages.components.baseComponents.SMPPage; import pages.components.baseComponents.PageComponent; import utils.PROPERTIES; @@ -58,6 +59,7 @@ public class Sidebar extends PageComponent { } waitForXMillis(500); + new Header(driver).waitForTitleToBe(); return PageFactory.initElements(driver, expect); } diff --git a/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java b/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java index 8e987a6461aaf2ea99a1d0ee5cadc0f3de0a5666..7ea13821ef982c59ab0a84a98a35d12ffb58231e 100644 --- a/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java +++ b/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java @@ -41,4 +41,9 @@ public class Header extends PageComponent{ webDriverWait.until(ExpectedConditions.textToBePresentInElement(pageTitle, title)); } + public void waitForTitleToBe(){ + waitForXMillis(500); + waitForElementToBeVisible(pageTitle); + } + } diff --git a/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java b/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java index 4faf7b4c03cf56ad381d67272d14afded06fd8d6..3140d04d23048c1205b9c8c73da8b50a59e2669c 100644 --- a/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java +++ b/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java @@ -41,6 +41,10 @@ public class PageComponent { return webDriverWait.until(ExpectedConditions.visibilityOf(element)); } + public WebElement waitForElementToBeVisible(By elementSelector) { + return webDriverWait.until(ExpectedConditions.visibilityOfElementLocated(elementSelector)); + } + public void waitForElementToBeEnabled(WebElement element) { int maxTimeout = PROPERTIES.TIMEOUT * 1000; int waitedSoFar = 0; diff --git a/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java b/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java index 133421c3745937c66ec5a66ab7b5a64f4e9fe1e5..0421d1b44b131bc67761067e88509354e13fbe53 100644 --- a/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java +++ b/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java @@ -1,6 +1,7 @@ package pages.components.grid; import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.interactions.Actions; @@ -21,6 +22,7 @@ public class BasicGrid extends PageComponent { log.info("Loading basic grid"); waitToLoad(); + waitForRowsToLoad(); PageFactory.initElements( new DefaultElementLocatorFactory(container) , this); for (int i = 0; i < gridHeaders.size(); i++) { @@ -40,6 +42,23 @@ public class BasicGrid extends PageComponent { } } + public void waitForRowsToLoad() { + try { + waitForElementToBeVisible(loadingBar); + + int bars = 1; + int waits = 0; + while (bars > 0 && waits < 30) { + Object tmp = ((JavascriptExecutor) driver).executeScript("return document.querySelectorAll('.mat-ripple-element').length;"); + bars = Integer.valueOf(tmp.toString()); + waits++; + waitForXMillis(500); + } + log.debug("waited for rows to load for ms = 500*" + waits); + waitForXMillis(500); + } catch (Exception e) { } + } + @FindBy(css = "datatable-header div.datatable-row-center datatable-header-cell") protected List<WebElement> gridHeaders; diff --git a/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java b/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java index 931fb8c30aef4da4e47b04b55e568b8ef073363b..5a82558b7da000bf5c7d6e97b2c12b39ff8a43cb 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java @@ -63,9 +63,6 @@ public class FilterArea extends PageComponent { } searchButton.click(); -// TODO - wait for loading bar to disappear - waitForXMillis(1000); - } diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java index 4b0fa85d642b62bfe1f01fcd646c7ff6dd4f3d53..5c58733a84fe6dccbd909783d28d1b588ece138d 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java @@ -147,6 +147,7 @@ public class ServiceGroupPopup extends PageComponent { public void enterDataInExtensionTextArea(String text){ waitForElementToBeVisible(extensionTextArea).clear(); extensionTextArea.sendKeys(text); + waitForXMillis(1000); } public void fillParticipantIdentifier(String participantIdentifier){ diff --git a/smp-ui-tests/src/main/java/utils/DriverManager.java b/smp-ui-tests/src/main/java/utils/DriverManager.java index 6169400ffdca80d4e361e28e0e4b96db1e35fae4..3f29d60ea5b6cb516820af97fef9fcf0c690a765 100644 --- a/smp-ui-tests/src/main/java/utils/DriverManager.java +++ b/smp-ui-tests/src/main/java/utils/DriverManager.java @@ -5,6 +5,7 @@ import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxDriverLogLevel; import org.openqa.selenium.firefox.FirefoxOptions; +import java.util.concurrent.TimeUnit; import java.util.logging.Level; public class DriverManager { @@ -24,11 +25,15 @@ public class DriverManager { public static WebDriver getDriver(){ System.setProperty(FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE,"true"); - System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"C:\\temp\\logs.txt"); +// System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"C:\\temp\\logs.txt"); WebDriver driver = new FirefoxDriver(); + driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); + driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS); + driver.manage().timeouts().setScriptTimeout(2, TimeUnit.SECONDS); + driver.manage().window().maximize(); return driver; diff --git a/smp-ui-tests/src/test/java/ui/BaseTest.java b/smp-ui-tests/src/test/java/ui/BaseTest.java index ef15336ab0757137ee132a34c86e82592baab7a9..57ccd8685b3c5facfda5b98b0cd40192424a0fdf 100644 --- a/smp-ui-tests/src/test/java/ui/BaseTest.java +++ b/smp-ui-tests/src/test/java/ui/BaseTest.java @@ -9,6 +9,7 @@ import utils.Generator; import utils.PROPERTIES; import utils.TestDataProvider; import utils.customReporter.ExcelTestReporter; +import utils.customReporter.TestProgressReporter; import utils.rest.SMPRestClient; import java.util.ArrayList; @@ -16,7 +17,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; -@Listeners(ExcelTestReporter.class) +@Listeners({ExcelTestReporter.class, TestProgressReporter.class}) public class BaseTest { static WebDriver driver; diff --git a/smp-ui-tests/src/test/java/ui/EditPgTest.java b/smp-ui-tests/src/test/java/ui/EditPgTest.java index c4b93748a62d06c2cb28d758dcea67e05fa7d858..c3ae1fc99b1a32b64c0ffffb813b7aba2f162c8f 100644 --- a/smp-ui-tests/src/test/java/ui/EditPgTest.java +++ b/smp-ui-tests/src/test/java/ui/EditPgTest.java @@ -18,14 +18,14 @@ import utils.rest.SMPRestClient; import java.util.List; @SuppressWarnings("SpellCheckingInspection") -public class EditPgTest extends BaseTest{ +public class EditPgTest extends BaseTest { @AfterMethod - public void logoutAndReset(){ + public void logoutAndReset() { SMPPage page = new SMPPage(driver); page.refreshPage(); - if(page.pageHeader.sandwichMenu.isLoggedIn()){ + if (page.pageHeader.sandwichMenu.isLoggedIn()) { logger.info("Logout!!"); page.pageHeader.sandwichMenu.logout(); } @@ -34,16 +34,16 @@ public class EditPgTest extends BaseTest{ @BeforeMethod - public void loginAndGoToEditPage(){ + public void loginAndGoToEditPage() { SMPPage page = new SMPPage(driver); - if(page.pageHeader.sandwichMenu.isLoggedIn()){ + if (page.pageHeader.sandwichMenu.isLoggedIn()) { logger.info("Logout!!"); page.pageHeader.sandwichMenu.logout(); } - if(!page.pageHeader.sandwichMenu.isLoggedIn()){ + if (!page.pageHeader.sandwichMenu.isLoggedIn()) { logger.info("Login!!"); page.pageHeader.goToLogin().login("SMP_ADMIN"); } @@ -54,7 +54,7 @@ public class EditPgTest extends BaseTest{ @Test(description = "EDT-10") - public void testFilters(){ + public void testFilters() { SoftAssert soft = new SoftAssert(); EditPage page = new EditPage(driver); @@ -82,8 +82,8 @@ public class EditPgTest extends BaseTest{ } @Test(description = "EDT-20") - public void doubleclickRow(){ - String extensionData = "<Extension xmlns=\"http://docs.oasis-open.org/bdxr/ns/SMP/2016/05\"><ExtensionID>df</ExtensionID><ExtensionName>sdxf</ExtensionName><!-- Custom element is mandatory by OASIS SMP schema. Replace following element with your XML structure. --><ext:example xmlns:ext=\"http://my.namespace.eu\">my mandatory content</ext:example></Extension>"; + public void doubleclickRow() { + String extensionData = "<Extension xmlns=\"http://docs.oasis-open.org/bdxr/ns/SMP/2016/05\"><ExtensionID>df</ExtensionID><ExtensionName>sdxf</ExtensionName><!-- Custom element is mandatory by OASIS SMP schema. Replace following element with your XML structure. --><ext:example xmlns:ext=\"http://my.namespace.eu\">" + Generator.randomAlphaNumeric(10) + "</ext:example></Extension>"; SoftAssert soft = new SoftAssert(); @@ -130,7 +130,7 @@ public class EditPgTest extends BaseTest{ } @Test(description = "EDT-30") - public void editActionButtonOnRow(){ + public void editActionButtonOnRow() { SoftAssert soft = new SoftAssert(); EditPage page = new EditPage(driver); @@ -148,7 +148,7 @@ public class EditPgTest extends BaseTest{ } @Test(description = "EDT-40") - public void editButtonOnPage(){ + public void editButtonOnPage() { SoftAssert soft = new SoftAssert(); EditPage page = new EditPage(driver); @@ -173,7 +173,7 @@ public class EditPgTest extends BaseTest{ } @Test(description = "EDT-50") - public void serviceGroupPopupUICheck(){ + public void serviceGroupPopupUICheck() { SoftAssert soft = new SoftAssert(); EditPage page = new EditPage(driver); @@ -198,7 +198,7 @@ public class EditPgTest extends BaseTest{ } @Test(description = "EDT-60") - public void newMetadataIcon(){ + public void newMetadataIcon() { SoftAssert soft = new SoftAssert(); EditPage page = new EditPage(driver); @@ -221,7 +221,7 @@ public class EditPgTest extends BaseTest{ // Cannot identify the cause of failure so move on and hope for the best @Test(description = "EDT-70") - public void noSYSADMINOwners(){ + public void noSYSADMINOwners() { SoftAssert soft = new SoftAssert(); EditPage page = new EditPage(driver); @@ -242,7 +242,7 @@ public class EditPgTest extends BaseTest{ for (String sysadmin : sysadmins) { logger.info("Checking sysadmin " + sysadmin); for (String listedOption : listedOptions) { - if(listedOption.equalsIgnoreCase(sysadmin)){ + if (listedOption.equalsIgnoreCase(sysadmin)) { soft.fail("Found sysadmin between options for SG owners - " + sysadmin); } } @@ -252,13 +252,13 @@ public class EditPgTest extends BaseTest{ } @Test(description = "EDT-80") - public void allDomainsInDomainsAccordionSection(){ + public void allDomainsInDomainsAccordionSection() { SoftAssert soft = new SoftAssert(); EditPage page = new EditPage(driver); ServiceGroupGrid grid = page.getGrid(); - Integer index = 0 ; + Integer index = 0; ServiceGroupRowE row0 = grid.getRowsAs(ServiceGroupRowE.class).get(index); grid.doubleClickRow(index); @@ -273,8 +273,8 @@ public class EditPgTest extends BaseTest{ boolean found = false; logger.info("Checking domain " + domain); for (String listedOption : listedOptions) { - if(listedOption.equalsIgnoreCase(domain)){ - found= true; + if (listedOption.equalsIgnoreCase(domain)) { + found = true; } } soft.assertTrue(found, "Domain found in options - " + domain); @@ -286,7 +286,7 @@ public class EditPgTest extends BaseTest{ } @Test(description = "EDT-90") - public void extensionValidatedOnOK(){ + public void extensionValidatedOnOK() { String identifier = Generator.randomAlphaNumeric(7); String tmpSchemeRoot = Generator.randomAlphaNumeric(3).toLowerCase(); String scheme = String.format("%s-%s-%s", tmpSchemeRoot, tmpSchemeRoot, tmpSchemeRoot); @@ -351,7 +351,7 @@ public class EditPgTest extends BaseTest{ } @Test(description = "EDT-100") - public void deleteServiceGroup(){ + public void deleteServiceGroup() { SoftAssert soft = new SoftAssert(); EditPage page = new EditPage(driver); @@ -393,7 +393,7 @@ public class EditPgTest extends BaseTest{ } - private int scrollToSG(String pi){ + private int scrollToSG(String pi) { EditPage page = new EditPage(driver); page.pagination.skipToFirstPage(); @@ -403,14 +403,16 @@ public class EditPgTest extends BaseTest{ List<ServiceGroupRow> rows = page.getGrid().getRows(); for (int i = 0; i < rows.size(); i++) { - if(rows.get(i).getParticipantIdentifier().equalsIgnoreCase(pi)){ + if (rows.get(i).getParticipantIdentifier().equalsIgnoreCase(pi)) { return i; } } - if(page.pagination.hasNextPage()){ + if (page.pagination.hasNextPage()) { page.pagination.goToNextPage(); - }else{end = true;} + } else { + end = true; + } } return -1;