From f590bf64fcd0b4b52b1961b250f30cc1798e84f0 Mon Sep 17 00:00:00 2001 From: Seraphym-Tuhai Date: Wed, 8 Mar 2023 14:10:51 +0200 Subject: [PATCH 1/7] fix tests after update on UI --- .../msa/ui/pages/CustomerPageElements.java | 14 ++--- .../msa/ui/pages/CustomerPageHelper.java | 6 +++ .../msa/ui/pages/DashboardPageHelper.java | 6 +-- .../ui/pages/OpenRuleChainPageElements.java | 7 +-- .../msa/ui/pages/OpenRuleChainPageHelper.java | 5 +- .../msa/ui/pages/OtherPageElements.java | 17 +++--- .../msa/ui/pages/OtherPageElementsHelper.java | 52 +++++-------------- .../msa/ui/pages/RuleChainsPageElements.java | 2 +- .../CreateAssetProfileTest.java | 2 +- .../customerSmoke/CustomerEditMenuTest.java | 24 ++++----- .../customerSmoke/DeleteCustomerTest.java | 4 +- .../DeleteSeveralCustomerTest.java | 10 ++-- .../ManageCustomersAssetsTest.java | 2 +- .../ManageCustomersDashboardsTest.java | 2 +- .../ManageCustomersUsersTest.java | 2 +- .../CreateDeviceProfileTest.java | 2 +- .../CreateRuleChainImportTest.java | 11 ++-- .../ruleChainsSmoke/DeleteRuleChainTest.java | 4 +- .../DeleteSeveralRuleChainsTest.java | 10 ++-- 19 files changed, 75 insertions(+), 107 deletions(-) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageElements.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageElements.java index de9e9d5bac..7caf109bc0 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageElements.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageElements.java @@ -32,17 +32,17 @@ public class CustomerPageElements extends OtherPageElementsHelper { private static final String TITLES = "//mat-cell[contains(@class,'cdk-column-title')]/span"; protected static final String EDIT_MENU_DASHBOARD_FIELD = "//input[@formcontrolname='dashboard']"; private static final String EDIT_MENU_DASHBOARD = "//div[@class='cdk-overlay-pane']//span/span"; - private static final String MANAGE_CUSTOMERS_USERS_BTN = ENTITY + "/../..//mat-icon[contains(text(),' account_circle')]/../.."; - private static final String MANAGE_CUSTOMERS_ASSETS_BTN = ENTITY + "/../..//mat-icon[contains(text(),' domain')]/../.."; - private static final String MANAGE_CUSTOMERS_DEVICES_BTN = ENTITY + "/../..//mat-icon[contains(text(),' devices_other')]/../.."; - private static final String MANAGE_CUSTOMERS_DASHBOARDS_BTN = ENTITY + "/../..//mat-icon[contains(text(),' dashboard')]/../.."; - private static final String MANAGE_CUSTOMERS_EDGE_BTN = ENTITY + "/../..//mat-icon[contains(text(),' router')]/../.."; + private static final String MANAGE_CUSTOMERS_USERS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),' account_circle')]"; + private static final String MANAGE_CUSTOMERS_ASSETS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),' domain')]/parent::button"; + private static final String MANAGE_CUSTOMERS_DEVICES_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'devices_other')]/parent::button"; + private static final String MANAGE_CUSTOMERS_DASHBOARDS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'dashboard')]/parent::button"; + private static final String MANAGE_CUSTOMERS_EDGE_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'router')]/parent::button"; private static final String ADD_USER_EMAIL = "//tb-add-user-dialog//input[@formcontrolname='email']"; private static final String ACTIVATE_WINDOW_OK_BTN = "//span[contains(text(),'OK')]"; private static final String USER_LOGIN_BTN = "//mat-icon[@data-mat-icon-name='login']"; private static final String USERS_WIDGET = "//tb-widget"; private static final String SELECT_COUNTRY_MENU = "//mat-form-field//mat-select[@formcontrolname='country']"; - private static final String COUNTRIES = "//span[@class='mat-option-text']"; + private static final String COUNTRIES = "//span[@class='mdc-list-item__primary-text']"; protected static final String INPUT_FIELD = "//input[@formcontrolname='%s']"; protected static final String INPUT_FIELD_NAME_TITLE = "title"; private static final String INPUT_FIELD_NAME_CITY = "city"; @@ -54,7 +54,7 @@ public class CustomerPageElements extends OtherPageElementsHelper { private static final String INPUT_FIELD_NAME_NUMBER = "phoneNumber"; private static final String INPUT_FIELD_NAME_ASSIGNED_LIST = "entity"; private static final String ASSIGNED_BTN = "//button[@type='submit']"; - private static final String HIDE_HOME_DASHBOARD_TOOLBAR = "//mat-checkbox[@formcontrolname='homeDashboardHideToolbar']/label"; + private static final String HIDE_HOME_DASHBOARD_TOOLBAR = "//mat-checkbox[@formcontrolname='homeDashboardHideToolbar']//label"; private static final String FILTER_BTN = "//tb-filters-edit"; private static final String TIME_BTN = "//tb-timewindow"; private static final String CUSTOMER_ICON_HEADER = "//tb-breadcrumb//span[contains(text(),'Customer %s')]"; diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java index d657388354..26303d3e3a 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java @@ -17,6 +17,7 @@ package org.thingsboard.server.msa.ui.pages; import lombok.extern.slf4j.Slf4j; import org.openqa.selenium.By; +import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -156,4 +157,9 @@ public class CustomerPageHelper extends CustomerPageElements { public void addCustomerViewEnterName(CharSequence keysToEnter) { enterText(titleFieldAddEntityView(), keysToEnter); } + + public void enterPhoneNumber(String number) { + phoneNumberEntityView().sendKeys(number); + phoneNumberEntityView().sendKeys(Keys.TAB); + } } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/DashboardPageHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/DashboardPageHelper.java index e6ec13fd1f..6449cf0cbb 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/DashboardPageHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/DashboardPageHelper.java @@ -33,8 +33,8 @@ public class DashboardPageHelper extends DashboardPageElements { } public void assignedCustomer(String title) { - manageAssignedEntityListField().click(); - manageAssignedEntity(title).click(); - manageAssignedUpdateBtn().click(); + jsClick(manageAssignedEntityListField()); + jsClick(manageAssignedEntity(title)); + jsClick(manageAssignedUpdateBtn()); } } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OpenRuleChainPageElements.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OpenRuleChainPageElements.java index 9a51392690..6fd114ad1d 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OpenRuleChainPageElements.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OpenRuleChainPageElements.java @@ -24,8 +24,7 @@ public class OpenRuleChainPageElements extends AbstractBasePage { super(driver); } - private static final String DONE_BTN = "//mat-icon[contains(text(),'done')]/../.."; - private static final String DONE_BTN_DISABLE = "//mat-icon[contains(text(),'done')]/../parent::button[@disabled='true']"; + private static final String DONE_BTN = "//mat-icon[contains(text(),'done')]/parent::button"; private static final String INPUT_NODE = "//div[@class='tb-rule-node tb-input-type']"; private static final String HEAD_RULE_CHAIN_NAME = "//div[@class='tb-breadcrumb']/span[2]"; @@ -37,10 +36,6 @@ public class OpenRuleChainPageElements extends AbstractBasePage { return waitUntilVisibilityOfElementLocated(HEAD_RULE_CHAIN_NAME); } - public String getDoneBtnDisable() { - return DONE_BTN_DISABLE; - } - public WebElement doneBtn() { return waitUntilElementToBeClickable(DONE_BTN); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OpenRuleChainPageHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OpenRuleChainPageHelper.java index 1a87102687..7bba9586dc 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OpenRuleChainPageHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OpenRuleChainPageHelper.java @@ -16,6 +16,7 @@ package org.thingsboard.server.msa.ui.pages; import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; public class OpenRuleChainPageHelper extends OpenRuleChainPageElements { public OpenRuleChainPageHelper(WebDriver driver) { @@ -32,7 +33,7 @@ public class OpenRuleChainPageHelper extends OpenRuleChainPageElements { return headName; } - public void waitUntilDoneBtnDisable() { - waitUntilVisibilityOfElementLocated(getDoneBtnDisable()); + public void waitUntilBtnDisable(WebElement element) { + waitUntilAttributeContains(element, "disabled", "true"); } } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElements.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElements.java index 99e737dba1..7cb5da3bc6 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElements.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElements.java @@ -28,7 +28,7 @@ public class OtherPageElements extends AbstractBasePage { } protected static final String ENTITY = "//mat-row//span[contains(text(),'%s')]"; - protected static final String DELETE_BTN = ENTITY + "/../..//mat-icon[contains(text(),' delete')]/../.."; + protected static final String DELETE_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'delete')]/ancestor::button"; protected static final String DETAILS_BTN = ENTITY + "/../..//mat-icon[contains(text(),'edit')]/../.."; private static final String ENTITY_COUNT = "//div[@class='mat-paginator-range-label']"; private static final String WARNING_DELETE_POPUP_YES = "//tb-confirm-dialog//button[2]"; @@ -37,11 +37,11 @@ public class OtherPageElements extends AbstractBasePage { private static final String HELP_BTN = "//mat-icon[contains(text(),'help')]/ancestor::button"; private static final String CHECKBOX = "//mat-row//span[contains(text(),'%s')]/../..//mat-checkbox"; private static final String CHECKBOXES = "//tbody//mat-checkbox"; - private static final String DELETE_SELECTED_BTN = "//span[contains(text(),'selected')]//..//mat-icon/../.."; + private static final String DELETE_SELECTED_BTN = "//div[@class='mat-toolbar-tools']//mat-icon[contains(text(),'delete')]/parent::button"; private static final String DELETE_BTNS = "//mat-icon[contains(text(),' delete')]/../.."; private static final String MARKS_CHECKBOX = "//mat-row[contains (@class,'mat-selected')]//mat-checkbox[contains(@class, 'checked')]"; private static final String SELECT_ALL_CHECKBOX = "//thead//mat-checkbox"; - private static final String ALL_ENTITY = "//mat-row[@class='mat-row cdk-row mat-row-select ng-star-inserted']"; + private static final String ALL_ENTITY = "//mat-row[@class='mat-mdc-row mdc-data-table__row cdk-row mat-row-select ng-star-inserted']"; private static final String EDIT_PENCIL_BTN = "//tb-details-panel//mat-icon[contains(text(),'edit')]/ancestor::button"; private static final String NAME_FIELD_EDIT_VIEW = "//input[@formcontrolname='name']"; private static final String HEADER_NAME_VIEW = "//header//div[@class='tb-details-title']/span"; @@ -50,14 +50,13 @@ public class OtherPageElements extends AbstractBasePage { private static final String DESCRIPTION_ADD_ENTITY_VIEW = "//tb-add-entity-dialog//textarea"; private static final String DEBUG_CHECKBOX_EDIT = "//mat-checkbox[@formcontrolname='debugMode']"; private static final String DEBUG_CHECKBOX_VIEW = "//mat-checkbox[@formcontrolname='debugMode']//input"; - private static final String CLOSE_ENTITY_VIEW_BTN = "//header//mat-icon[contains(text(),'close')]/../.."; - private static final String SEARCH_BTN = "//mat-toolbar//mat-icon[contains(text(),'search')]/.." + - "/parent::button[@class='mat-focus-indicator mat-tooltip-trigger mat-icon-button mat-button-base ng-star-inserted']"; + private static final String CLOSE_ENTITY_VIEW_BTN = "//header//mat-icon[contains(text(),'close')]/parent::button"; + private static final String SEARCH_BTN = "//mat-toolbar//mat-icon[contains(text(),'search')]/ancestor::button[contains(@class,'ng-star')]"; private static final String SORT_BY_NAME_BTN = "//div[contains(text(),'Name')]"; private static final String SORT_BY_TITLE_BTN = "//div[contains(text(),'Title')]"; private static final String SORT_BY_TIME_BTN = "//div[contains(text(),'Created time')]/.."; private static final String CREATED_TIME = "//tbody[@role='rowgroup']//mat-cell[2]/span"; - private static final String PLUS_BTN = "//mat-icon[contains(text(),'add')]/../parent::button"; + private static final String PLUS_BTN = "//mat-icon[contains(text(),'add')]/ancestor::button"; private static final String CREATE_VIEW_ADD_BTN = "//span[contains(text(),'Add')]/.."; private static final String WARNING_MESSAGE = "//tb-snack-bar-component/div/div"; private static final String ERROR_MESSAGE = "//mat-error"; @@ -66,7 +65,7 @@ public class OtherPageElements extends AbstractBasePage { private static final String ENTITY_FROM_LIST = "//div[@role='listbox']/mat-option//span[contains(text(),'%s')]"; protected static final String ADD_ENTITY_VIEW = "//tb-add-entity-dialog"; protected static final String STATE_CONTROLLER = "//tb-entity-state-controller"; - private static final String SEARCH_FIELD = "//input[contains (@data-placeholder,'Search')]"; + private static final String SEARCH_FIELD = "//input[contains (@placeholder,'Search')]"; private static final String BROWSE_FILE = "//input[@class='file-input']"; private static final String IMPORT_BROWSE_FILE = "//mat-dialog-container//span[contains(text(),'Import')]/.."; private static final String IMPORTING_FILE = "//div[contains(text(),'%s')]"; @@ -158,7 +157,7 @@ public class OtherPageElements extends AbstractBasePage { } public WebElement debugCheckboxView() { - return waitUntilVisibilityOfElementLocated(DEBUG_CHECKBOX_VIEW); + return waitUntilPresenceOfElementLocated(DEBUG_CHECKBOX_VIEW); } public WebElement closeEntityViewBtn() { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElementsHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElementsHelper.java index 45a0dddc98..815e118a9b 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElementsHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElementsHelper.java @@ -62,48 +62,22 @@ public class OtherPageElementsHelper extends OtherPageElements { } public String deleteRuleChainTrash(String entityName) { - String s = ""; - if (deleteBtn(entityName) != null) { - deleteBtn(entityName).click(); - warningPopUpYesBtn().click(); - return entityName; - } else { - for (int i = 0; i < deleteBtns().size(); i++) { - if (deleteBtns().get(i).isEnabled()) { - deleteBtns().get(i).click(); - warningPopUpYesBtn().click(); - if (elementIsNotPresent(getWarningMessage())) { - s = driver.findElements(By.xpath(getDeleteBtns() - + "/../../../mat-cell/following-sibling::mat-cell/following-sibling::mat-cell[contains(@class,'cdk-column-name')]/span")).get(i).getText(); - break; - } - } - } - return s; - } + deleteBtn(entityName).click(); + warningPopUpYesBtn().click(); + return entityName; } public String deleteSelected(String entityName) { - String s = ""; - if (deleteBtn(entityName) != null) { - checkBox(entityName).click(); - deleteSelectedBtn().click(); - warningPopUpYesBtn().click(); - return entityName; - } else { - for (int i = 0; i < checkBoxes().size(); i++) { - if (checkBoxes().get(i).isDisplayed()) { - s = driver.findElements(By.xpath(getCheckboxes() + "/../../mat-cell/following-sibling::mat-cell/following-sibling::mat-cell[contains(@class,'cdk-column-name')]/span")).get(i).getText(); - checkBox(s).click(); - deleteSelectedBtn().click(); - warningPopUpYesBtn().click(); - if (elementIsNotPresent(getWarningMessage())) { - break; - } - } - } - return s; - } + checkBox(entityName).click(); + jsClick(deleteSelectedBtn()); + warningPopUpYesBtn().click(); + return entityName; + } + + public void deleteSelected(int countOfCheckBoxes) { + clickOnCheckBoxes(countOfCheckBoxes); + jsClick(deleteSelectedBtn()); + warningPopUpYesBtn().click(); } public void searchEntity(String namePath) { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageElements.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageElements.java index b34c5ccb86..1f0073bfbe 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageElements.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageElements.java @@ -25,7 +25,7 @@ public class RuleChainsPageElements extends OtherPageElementsHelper { super(driver); } - private static final String MAKE_ROOT_BTN = ENTITY + "/../..//mat-icon[contains(text(),' flag')]/../.."; + private static final String MAKE_ROOT_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'flag')]/ancestor::button"; private static final String ROOT = ENTITY + "/../..//mat-icon[text() = 'check_box']"; private static final String ROOT_DISABLE = ENTITY + "/../..//mat-icon[text() = 'check_box_outline_blank']"; private static final String CREATED_TIME = ENTITY + "/../..//mat-cell/span[contains(text(),'%s')]"; diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileTest.java index 5f06cd1f8d..98e5e036dd 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileTest.java @@ -167,7 +167,7 @@ public class CreateAssetProfileTest extends AbstractDriverBaseTest { String urlPath = "docs/user-guide/asset-profiles/"; sideBarMenuView.openAssetProfiles(); - profilesPage.allEntity().get(0).click(); + profilesPage.profileNames().get(0).click(); profilesPage.goToProfileHelpPage(); Assert.assertTrue(urlContains(urlPath)); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java index c67ed9d2cd..f579779927 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java @@ -137,14 +137,14 @@ public class CustomerEditMenuTest extends AbstractDriverBaseTest { dashboardPage.assignedCustomer(customerName); sideBarMenuView.customerBtn().click(); customerPage.entity(customerName).click(); - customerPage.editPencilBtn().click(); + jsClick(customerPage.editPencilBtn()); customerPage.chooseDashboard(); customerPage.doneBtnEditView().click(); customerPage.setDashboardFromView(); customerPage.closeEntityViewBtn().click(); - customerPage.manageCustomersUserBtn(customerName).click(); + jsClick(customerPage.manageCustomersUserBtn(customerName)); customerPage.createCustomersUser(); - customerPage.userLoginBtn().click(); + jsClick(customerPage.userLoginBtn()); Assert.assertNotNull(customerPage.usersWidget()); Assert.assertTrue(customerPage.usersWidget().isDisplayed()); @@ -163,14 +163,14 @@ public class CustomerEditMenuTest extends AbstractDriverBaseTest { customerPage.assignedDashboard(); sideBarMenuView.customerBtn().click(); customerPage.entity(customerName).click(); - customerPage.editPencilBtn().click(); + jsClick(customerPage.editPencilBtn()); customerPage.chooseDashboard(); customerPage.doneBtnEditView().click(); customerPage.setDashboardFromView(); customerPage.closeEntityViewBtn().click(); - customerPage.manageCustomersUserBtn(customerName).click(); + jsClick(customerPage.manageCustomersUserBtn(customerName)); customerPage.createCustomersUser(); - customerPage.userLoginBtn().click(); + jsClick(customerPage.userLoginBtn()); Assert.assertNotNull(customerPage.usersWidget()); Assert.assertTrue(customerPage.usersWidget().isDisplayed()); @@ -189,15 +189,15 @@ public class CustomerEditMenuTest extends AbstractDriverBaseTest { customerPage.assignedDashboard(); sideBarMenuView.customerBtn().click(); customerPage.entity(customerName).click(); - customerPage.editPencilBtn().click(); + jsClick(customerPage.editPencilBtn()); customerPage.chooseDashboard(); customerPage.hideHomeDashboardToolbarCheckbox().click(); customerPage.doneBtnEditView().click(); customerPage.setDashboardFromView(); customerPage.closeEntityViewBtn().click(); - customerPage.manageCustomersUserBtn(customerName).click(); + jsClick(customerPage.manageCustomersUserBtn(customerName)); customerPage.createCustomersUser(); - customerPage.userLoginBtn().click(); + jsClick(customerPage.userLoginBtn()); Assert.assertNotNull(customerPage.usersWidget()); Assert.assertTrue(customerPage.usersWidget().isDisplayed()); @@ -233,11 +233,9 @@ public class CustomerEditMenuTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.entityTitles().get(0).click(); customerPage.editPencilBtn().click(); - customerPage.phoneNumberEntityView().sendKeys(number); - boolean doneBtnIsEnable = customerPage.doneBtnEditViewVisible().isEnabled(); - customerPage.doneBtnEditViewVisible().click(); + customerPage.enterPhoneNumber(number); - Assert.assertFalse(doneBtnIsEnable); + Assert.assertFalse(customerPage.doneBtnEditViewVisible().isEnabled()); Assert.assertNotNull(customerPage.errorMessage()); Assert.assertTrue(customerPage.errorMessage().isDisplayed()); Assert.assertEquals(customerPage.errorMessage().getText(), PHONE_NUMBER_ERROR_MESSAGE); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteCustomerTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteCustomerTest.java index 4372799f33..e1ec330e87 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteCustomerTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteCustomerTest.java @@ -77,9 +77,9 @@ public class DeleteCustomerTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.entity(customerName).click(); - customerPage.customerViewDeleteBtn().click(); + jsClick(customerPage.customerViewDeleteBtn()); customerPage.warningPopUpYesBtn().click(); - customerPage.refreshBtn().click(); + jsClick(customerPage.refreshBtn()); Assert.assertTrue(customerPage.entityIsNotPresent(customerName)); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteSeveralCustomerTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteSeveralCustomerTest.java index a32a9304b2..d87cd98105 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteSeveralCustomerTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteSeveralCustomerTest.java @@ -49,9 +49,7 @@ public class DeleteSeveralCustomerTest extends AbstractDriverBaseTest { testRestClient.postCustomer(defaultCustomerPrototype(title2)); sideBarMenuView.customerBtn().click(); - customerPage.clickOnCheckBoxes(2); - customerPage.deleteSelectedBtn().click(); - customerPage.warningPopUpYesBtn().click(); + customerPage.deleteSelected(2); customerPage.refreshBtn().click(); Assert.assertTrue(customerPage.customerIsNotPresent(title1)); @@ -63,7 +61,7 @@ public class DeleteSeveralCustomerTest extends AbstractDriverBaseTest { public void selectAllCustomers() { sideBarMenuView.customerBtn().click(); customerPage.selectAllCheckBox().click(); - customerPage.deleteSelectedBtn().click(); + jsClick(customerPage.deleteSelectedBtn()); Assert.assertNotNull(customerPage.warningPopUpTitle()); Assert.assertTrue(customerPage.warningPopUpTitle().isDisplayed()); @@ -79,9 +77,7 @@ public class DeleteSeveralCustomerTest extends AbstractDriverBaseTest { testRestClient.postCustomer(defaultCustomerPrototype(title2)); sideBarMenuView.customerBtn().click(); - customerPage.clickOnCheckBoxes(2); - customerPage.deleteSelectedBtn().click(); - customerPage.warningPopUpYesBtn().click(); + customerPage.deleteSelected(2); Assert.assertTrue(customerPage.customerIsNotPresent(title1)); Assert.assertTrue(customerPage.customerIsNotPresent(title2)); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersAssetsTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersAssetsTest.java index 90528f0d89..2b4538ba3e 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersAssetsTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersAssetsTest.java @@ -56,7 +56,7 @@ public class ManageCustomersAssetsTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.setCustomerName(); customerPage.entity(customerPage.getCustomerName()).click(); - customerPage.manageCustomersAssetsBtnView().click(); + jsClick(customerPage.manageCustomersAssetsBtnView()); Assert.assertTrue(urlContains(manage.toLowerCase())); Assert.assertNotNull(customerPage.customerAssetsIconHeader()); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDashboardsTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDashboardsTest.java index 27b5ecb1aa..19f2031ec2 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDashboardsTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDashboardsTest.java @@ -55,7 +55,7 @@ public class ManageCustomersDashboardsTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.setCustomerName(); customerPage.entity(customerPage.getCustomerName()).click(); - customerPage.manageCustomersDashboardsBtnView().click(); + jsClick(customerPage.manageCustomersDashboardsBtnView()); Assert.assertTrue(urlContains(manage.toLowerCase())); Assert.assertNotNull(customerPage.customerDashboardIconHeader()); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java index faa7cde0fb..7b67351a63 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java @@ -42,7 +42,7 @@ public class ManageCustomersUsersTest extends AbstractDriverBaseTest { public void openWindowByRightCornerBtn() { sideBarMenuView.customerBtn().click(); customerPage.setCustomerName(); - customerPage.manageCustomersUserBtn(customerPage.getCustomerName()).click(); + jsClick(customerPage.manageCustomersUserBtn(customerPage.getCustomerName())); Assert.assertTrue(urlContains("user")); Assert.assertNotNull(customerPage.customerUserIconHeader()); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileTest.java index 9fc7e3ae77..4d7fc0220c 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileTest.java @@ -173,7 +173,7 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { String urlPath = "docs/user-guide/device-profiles/"; sideBarMenuView.openDeviceProfiles(); - profilesPage.allEntity().get(0).click(); + profilesPage.profileNames().get(0).click(); profilesPage.goToProfileHelpPage(); Assert.assertTrue(urlContains(urlPath)); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainImportTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainImportTest.java index d30c7799dd..a9603680dc 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainImportTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainImportTest.java @@ -16,6 +16,7 @@ package org.thingsboard.server.msa.ui.tests.ruleChainsSmoke; import io.qameta.allure.Description; +import org.openqa.selenium.WebElement; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; @@ -100,8 +101,9 @@ public class CreateRuleChainImportTest extends AbstractDriverBaseTest { ruleChainsPage.openImportRuleChainView(); ruleChainsPage.browseFile().sendKeys(absolutePathToFileImportRuleChain); ruleChainsPage.importBrowseFileBtn().click(); - openRuleChainPage.doneBtn().click(); - openRuleChainPage.waitUntilDoneBtnDisable(); + WebElement doneBtn = openRuleChainPage.doneBtn(); + doneBtn.click(); + //openRuleChainPage.waitUntilBtnDisable(doneBtn); ruleChainName = IMPORT_RULE_CHAIN_NAME; sideBarMenuView.ruleChainsBtn().click(); @@ -120,8 +122,9 @@ public class CreateRuleChainImportTest extends AbstractDriverBaseTest { ruleChainsPage.openImportRuleChainView(); ruleChainsPage.browseFile().sendKeys(absolutePathToFileImportRuleChain); ruleChainsPage.importBrowseFileBtn().click(); - openRuleChainPage.doneBtn().click(); - openRuleChainPage.waitUntilDoneBtnDisable(); + WebElement doneBtn = openRuleChainPage.doneBtn(); + doneBtn.click(); + //openRuleChainPage.waitUntilBtnDisable(doneBtn); sideBarMenuView.ruleChainsBtn().click(); boolean entityNotNull = ruleChainsPage.entity(ruleChainName) != null; diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteRuleChainTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteRuleChainTest.java index 8a1be66505..d18f0db38b 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteRuleChainTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteRuleChainTest.java @@ -76,7 +76,7 @@ public class DeleteRuleChainTest extends AbstractDriverBaseTest { sideBarMenuView.ruleChainsBtn().click(); ruleChainsPage.detailsBtn(ENTITY_NAME).click(); String deletedRuleChain = ruleChainsPage.deleteRuleChainFromView(ruleChainName); - ruleChainsPage.refreshBtn().click(); + jsClick(ruleChainsPage.refreshBtn()); Assert.assertTrue(ruleChainsPage.entityIsNotPresent(deletedRuleChain)); } @@ -145,7 +145,7 @@ public class DeleteRuleChainTest extends AbstractDriverBaseTest { sideBarMenuView.ruleChainsBtn().click(); ruleChainsPage.detailsBtn(deletedRuleChain).click(); - ruleChainsPage.deleteBtnFromView().click(); + jsClick(ruleChainsPage.deleteBtnFromView()); ruleChainsPage.warningPopUpYesBtn().click(); Assert.assertNotNull(ruleChainsPage.entity(deletedRuleChain)); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteSeveralRuleChainsTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteSeveralRuleChainsTest.java index d631ed05d5..f17ab704a6 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteSeveralRuleChainsTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteSeveralRuleChainsTest.java @@ -49,9 +49,7 @@ public class DeleteSeveralRuleChainsTest extends AbstractDriverBaseTest { testRestClient.postRuleChain(defaultRuleChainPrototype(ruleChainName)); sideBarMenuView.ruleChainsBtn().click(); - ruleChainsPage.clickOnCheckBoxes(2); - ruleChainsPage.deleteSelectedBtn().click(); - ruleChainsPage.warningPopUpYesBtn().click(); + ruleChainsPage.deleteSelected(2); ruleChainsPage.refreshBtn().click(); Assert.assertTrue(ruleChainsPage.ruleChainsIsNotPresent(ruleChainName)); @@ -66,7 +64,7 @@ public class DeleteSeveralRuleChainsTest extends AbstractDriverBaseTest { sideBarMenuView.ruleChainsBtn().click(); ruleChainsPage.selectAllCheckBox().click(); - ruleChainsPage.deleteSelectedBtn().click(); + jsClick(ruleChainsPage.deleteSelectedBtn()); ruleChainsPage.warningPopUpYesBtn().click(); ruleChainsPage.refreshBtn().click(); @@ -99,9 +97,7 @@ public class DeleteSeveralRuleChainsTest extends AbstractDriverBaseTest { testRestClient.postRuleChain(defaultRuleChainPrototype(ruleChainName)); sideBarMenuView.ruleChainsBtn().click(); - ruleChainsPage.clickOnCheckBoxes(2); - ruleChainsPage.deleteSelectedBtn().click(); - ruleChainsPage.warningPopUpYesBtn().click(); + ruleChainsPage.deleteSelected(2); Assert.assertTrue(ruleChainsPage.ruleChainsIsNotPresent(ruleChainName)); } From e99024d7eba5d3f5b4c94b8642801d8f41780b2b Mon Sep 17 00:00:00 2001 From: Seraphym-Tuhai Date: Thu, 9 Mar 2023 18:37:13 +0200 Subject: [PATCH 2/7] fix locators, fix flaky tests with ElementClickInterceptedException --- .../server/msa/ui/base/AbstractDriverBaseTest.java | 13 ++++++------- .../server/msa/ui/pages/CustomerPageHelper.java | 2 -- .../server/msa/ui/pages/RuleChainsPageElements.java | 2 +- .../tests/customerSmoke/CustomerEditMenuTest.java | 2 +- .../customerSmoke/ManageCustomersDevicesTest.java | 2 +- .../customerSmoke/ManageCustomersEdgesTest.java | 2 +- .../customerSmoke/ManageCustomersUsersTest.java | 2 +- .../ruleChainsSmoke/MakeRuleChainRootTest.java | 2 +- 8 files changed, 12 insertions(+), 15 deletions(-) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java index 29574a1942..c6db3c7bad 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java @@ -18,7 +18,6 @@ package org.thingsboard.server.msa.ui.base; import io.github.bonigarcia.wdm.WebDriverManager; import io.qameta.allure.Allure; import lombok.extern.slf4j.Slf4j; -import org.openqa.selenium.By; import org.openqa.selenium.Dimension; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.OutputType; @@ -48,7 +47,6 @@ import java.io.ByteArrayInputStream; import java.net.MalformedURLException; import java.net.URL; import java.time.Duration; -import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import static org.thingsboard.server.msa.TestProperties.getBaseUiUrl; @@ -87,7 +85,7 @@ abstract public class AbstractDriverBaseTest extends AbstractContainerTest { @BeforeMethod public void open() { - openHomePage(); + openLocalhost(); } @AfterMethod @@ -101,12 +99,13 @@ abstract public class AbstractDriverBaseTest extends AbstractContainerTest { driver.quit(); } - public void openLocalhost() { - driver.get(getBaseUiUrl()); + public String getJwtTokenFromLocalStorage() { + js = (JavascriptExecutor) driver; + return (String) js.executeScript("return window.localStorage.getItem('jwt_token');"); } - public void openHomePage() { - driver.get(getBaseUiUrl() + "/home"); + public void openLocalhost() { + driver.get(getBaseUiUrl()); } public String getUrl() { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java index 26303d3e3a..e428ff8030 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java @@ -114,9 +114,7 @@ public class CustomerPageHelper extends CustomerPageElements { public void chooseDashboard() { editMenuDashboardField().click(); - sleep(0.5); editMenuDashboard().click(); - sleep(0.5); } public void createCustomersUser() { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageElements.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageElements.java index 1f0073bfbe..c1b72efbeb 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageElements.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageElements.java @@ -35,7 +35,7 @@ public class RuleChainsPageElements extends OtherPageElementsHelper { private static final String DELETE_RULE_CHAIN_FROM_VIEW_BTN = "//span[contains(text(),' Delete')]"; private static final String IMPORT_RULE_CHAIN_BTN = "//span[contains(text(),'Import rule chain')]"; private static final String OPEN_RULE_CHAIN_FROM_VIEW = "//span[contains(text(),'Open rule chain')]"; - private static final String MAKE_ROOT_FROM_VIEW = "(//span[contains(text(),' Make rule chain root ')]/..)[1]"; + private static final String MAKE_ROOT_FROM_VIEW = "//span[contains(text(),' Make rule chain root ')]/parent::button"; private static final String ROOT_ACTIVE_CHECKBOXES = "//mat-icon[text() = 'check_box']"; private static final String ALL_NAMES = "//mat-icon[contains(text(),'check')]/../../../mat-cell[contains(@class,'name')]/span"; diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java index 68e22f2d7f..998aa0af06 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java @@ -63,7 +63,7 @@ public class CustomerEditMenuTest extends AbstractDriverBaseTest { @BeforeMethod public void reLogin() { - if (getUrl().contains("/login")) { + if (getJwtTokenFromLocalStorage() == null) { loginPage.authorizationTenant(); } } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDevicesTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDevicesTest.java index fde5b87e52..f6a6e4c433 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDevicesTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDevicesTest.java @@ -55,7 +55,7 @@ public class ManageCustomersDevicesTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.setCustomerName(); customerPage.entity(customerPage.getCustomerName()).click(); - customerPage.manageCustomersDeviceBtnView().click(); + jsClick(customerPage.manageCustomersDeviceBtnView()); Assert.assertTrue(urlContains(manage.toLowerCase())); Assert.assertNotNull(customerPage.customerDevicesIconHeader()); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersEdgesTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersEdgesTest.java index 184f506584..a32ab02b7a 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersEdgesTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersEdgesTest.java @@ -56,7 +56,7 @@ public class ManageCustomersEdgesTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.setCustomerName(); customerPage.entity(customerPage.getCustomerName()).click(); - customerPage.manageCustomersEdgeBtnView().click(); + jsClick(customerPage.manageCustomersEdgeBtnView()); Assert.assertTrue(urlContains("edgeInstances")); Assert.assertNotNull(customerPage.customerEdgeIconHeader()); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java index 0ac6258ab0..632f76422e 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java @@ -56,7 +56,7 @@ public class ManageCustomersUsersTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.setCustomerName(); customerPage.entity(customerPage.getCustomerName()).click(); - customerPage.manageCustomersUserBtnView().click(); + jsClick(customerPage.manageCustomersUserBtnView()); Assert.assertTrue(urlContains("user")); Assert.assertNotNull(customerPage.customerUserIconHeader()); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/MakeRuleChainRootTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/MakeRuleChainRootTest.java index 7ad3fad982..6b6bbc43bd 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/MakeRuleChainRootTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/MakeRuleChainRootTest.java @@ -75,7 +75,7 @@ public class MakeRuleChainRootTest extends AbstractDriverBaseTest { ruleChainsPage.setRuleChainNameWithoutRoot(0); String ruleChain = ruleChainsPage.getRuleChainName(); ruleChainsPage.detailsBtn(ruleChain).click(); - ruleChainsPage.makeRootFromViewBtn().click(); + jsClick(ruleChainsPage.makeRootFromViewBtn()); ruleChainsPage.warningPopUpYesBtn().click(); ruleChainsPage.closeEntityViewBtn().click(); From ec4d567ecdf3728e50e3ee0d487255979af79085 Mon Sep 17 00:00:00 2001 From: Seraphym-Tuhai Date: Fri, 10 Mar 2023 09:40:50 +0200 Subject: [PATCH 3/7] temporary fix after updating google chrome --- .../thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java index c6db3c7bad..634bf47c14 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java @@ -71,6 +71,7 @@ abstract public class AbstractDriverBaseTest extends AbstractContainerTest { testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); + options.addArguments("-remote-allow-origins=*"); //temporary fix after updating google chrome if (instance.isActive()) { RemoteWebDriver remoteWebDriver = new RemoteWebDriver(new URL(REMOTE_WEBDRIVER_HOST), options); remoteWebDriver.setFileDetector(new LocalFileDetector()); From 738fbda60b04a15d2e66e1db617bff42913cb2fb Mon Sep 17 00:00:00 2001 From: Seraphym-Tuhai Date: Mon, 13 Mar 2023 12:16:15 +0200 Subject: [PATCH 4/7] fix test on assigned dashboard --- .../server/msa/ui/pages/CustomerPageElements.java | 6 +++--- .../thingsboard/server/msa/ui/pages/CustomerPageHelper.java | 4 ++-- .../msa/ui/tests/customerSmoke/CustomerEditMenuTest.java | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageElements.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageElements.java index 7caf109bc0..1d69ddd5fc 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageElements.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageElements.java @@ -31,7 +31,7 @@ public class CustomerPageElements extends OtherPageElementsHelper { private static final String CITY = ENTITY + "/../..//mat-cell[contains(@class,'city')]/span"; private static final String TITLES = "//mat-cell[contains(@class,'cdk-column-title')]/span"; protected static final String EDIT_MENU_DASHBOARD_FIELD = "//input[@formcontrolname='dashboard']"; - private static final String EDIT_MENU_DASHBOARD = "//div[@class='cdk-overlay-pane']//span/span"; + private static final String EDIT_MENU_DASHBOARD = "//div[@class='cdk-overlay-pane']//span/span[contains(text(),'%s')]"; private static final String MANAGE_CUSTOMERS_USERS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),' account_circle')]"; private static final String MANAGE_CUSTOMERS_ASSETS_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),' domain')]/parent::button"; private static final String MANAGE_CUSTOMERS_DEVICES_BTN = ENTITY + "/ancestor::mat-row//mat-icon[contains(text(),'devices_other')]/parent::button"; @@ -104,8 +104,8 @@ public class CustomerPageElements extends OtherPageElementsHelper { return waitUntilVisibilityOfElementLocated(EDIT_MENU_DASHBOARD_FIELD); } - public WebElement editMenuDashboard() { - return waitUntilElementToBeClickable(EDIT_MENU_DASHBOARD); + public WebElement editMenuDashboard(String dashboardName) { + return waitUntilElementToBeClickable(String.format(EDIT_MENU_DASHBOARD, dashboardName)); } public WebElement phoneNumberEntityView() { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java index e428ff8030..030bf630cb 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java @@ -112,9 +112,9 @@ public class CustomerPageHelper extends CustomerPageElements { titleFieldEntityView().sendKeys(newTitle); } - public void chooseDashboard() { + public void chooseDashboard(String dashboardName) { editMenuDashboardField().click(); - editMenuDashboard().click(); + editMenuDashboard(dashboardName).click(); } public void createCustomersUser() { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java index 998aa0af06..76a4abb65d 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java @@ -148,7 +148,7 @@ public class CustomerEditMenuTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.entity(customerName).click(); jsClick(customerPage.editPencilBtn()); - customerPage.chooseDashboard(); + customerPage.chooseDashboard(dashboardPage.getDashboardTitle()); customerPage.doneBtnEditView().click(); customerPage.setDashboardFromView(); customerPage.closeEntityViewBtn().click(); @@ -174,7 +174,7 @@ public class CustomerEditMenuTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.entity(customerName).click(); jsClick(customerPage.editPencilBtn()); - customerPage.chooseDashboard(); + customerPage.chooseDashboard(customerPage.getDashboard()); customerPage.doneBtnEditView().click(); customerPage.setDashboardFromView(); customerPage.closeEntityViewBtn().click(); @@ -200,7 +200,7 @@ public class CustomerEditMenuTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.entity(customerName).click(); jsClick(customerPage.editPencilBtn()); - customerPage.chooseDashboard(); + customerPage.chooseDashboard(customerPage.getDashboard()); customerPage.hideHomeDashboardToolbarCheckbox().click(); customerPage.doneBtnEditView().click(); customerPage.setDashboardFromView(); From 16061ec4fcf27e355ae22444676de8318d4e0b65 Mon Sep 17 00:00:00 2001 From: Seraphym-Tuhai Date: Tue, 14 Mar 2023 11:48:10 +0200 Subject: [PATCH 5/7] rename openLocalhost() method --- .../server/msa/ui/base/AbstractDriverBaseTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java index 634bf47c14..3820563a8a 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java @@ -81,12 +81,12 @@ abstract public class AbstractDriverBaseTest extends AbstractContainerTest { driver = new ChromeDriver(options); } driver.manage().window().setSize(dimension); - openLocalhost(); + openBaseUiUrl(); } @BeforeMethod public void open() { - openLocalhost(); + openBaseUiUrl(); } @AfterMethod @@ -105,7 +105,7 @@ abstract public class AbstractDriverBaseTest extends AbstractContainerTest { return (String) js.executeScript("return window.localStorage.getItem('jwt_token');"); } - public void openLocalhost() { + public void openBaseUiUrl() { driver.get(getBaseUiUrl()); } From 12041ee6e22e8b04e2a8f509fee345c6a12cd13d Mon Sep 17 00:00:00 2001 From: Seraphym-Tuhai Date: Tue, 14 Mar 2023 12:20:18 +0200 Subject: [PATCH 6/7] return Assertions.fail() in catch block of custom waiters method --- .../server/msa/ui/base/AbstractBasePage.java | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java index cd4ca51698..286428218d 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java @@ -16,7 +16,6 @@ package org.thingsboard.server.msa.ui.base; import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; @@ -34,7 +33,8 @@ import java.util.UUID; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; -@Slf4j +import static org.junit.jupiter.api.Assertions.fail; + abstract public class AbstractBasePage { public static final long WAIT_TIMEOUT = TimeUnit.SECONDS.toMillis(30); protected WebDriver driver; @@ -59,8 +59,7 @@ abstract public class AbstractBasePage { try { return wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(locator))); } catch (WebDriverException e) { - log.error("No visibility element: " + locator); - return null; + return fail("No visibility element: " + locator); } } @@ -68,8 +67,7 @@ abstract public class AbstractBasePage { try { return wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(locator))); } catch (WebDriverException e) { - log.error("No presence element: " + locator); - return null; + return fail("No presence element: " + locator); } } @@ -77,8 +75,7 @@ abstract public class AbstractBasePage { try { return wait.until(ExpectedConditions.elementToBeClickable(By.xpath(locator))); } catch (WebDriverException e) { - log.error("No clickable element: " + locator); - return null; + return fail("No clickable element: " + locator); } } @@ -87,8 +84,7 @@ abstract public class AbstractBasePage { wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(locator))); return driver.findElements(By.xpath(locator)); } catch (WebDriverException e) { - log.error("No visibility elements: " + locator); - return null; + return fail("No visibility elements: " + locator); } } @@ -97,8 +93,7 @@ abstract public class AbstractBasePage { wait.until(ExpectedConditions.elementToBeClickable(By.xpath(locator))); return driver.findElements(By.xpath(locator)); } catch (WebDriverException e) { - log.error("No clickable elements: " + locator); - return null; + return fail("No clickable elements: " + locator); } } @@ -106,7 +101,7 @@ abstract public class AbstractBasePage { try { wait.until(ExpectedConditions.urlContains(urlPath)); } catch (WebDriverException e) { - log.error("This URL path is missing"); + fail("This URL path is missing"); } } @@ -122,7 +117,7 @@ abstract public class AbstractBasePage { try { return wait.until(ExpectedConditions.not(ExpectedConditions.visibilityOfElementLocated(By.xpath(locator)))); } catch (WebDriverException e) { - throw new AssertionError("Element is present"); + return fail("Element is present"); } } @@ -130,7 +125,7 @@ abstract public class AbstractBasePage { try { return wait.until(ExpectedConditions.not(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath(locator)))); } catch (WebDriverException e) { - throw new AssertionError("Elements is present"); + return fail("Elements is present"); } } @@ -138,7 +133,7 @@ abstract public class AbstractBasePage { try { wait.until(ExpectedConditions.numberOfWindowsToBe(tabNumber)); } catch (WebDriverException e) { - log.error("No tabs with this number"); + fail("No tabs with this number: " + tabNumber); } } From 80c331705f1b21b2884961b119349766a653a60b Mon Sep 17 00:00:00 2001 From: Seraphym-Tuhai Date: Tue, 14 Mar 2023 12:27:17 +0200 Subject: [PATCH 7/7] small refactoring --- .../org/thingsboard/server/msa/ui/base/AbstractBasePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java index 286428218d..6384e17426 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java @@ -33,7 +33,7 @@ import java.util.UUID; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; -import static org.junit.jupiter.api.Assertions.fail; +import static org.assertj.core.api.Assertions.fail; abstract public class AbstractBasePage { public static final long WAIT_TIMEOUT = TimeUnit.SECONDS.toMillis(30);