From b75fa0fe6fbe8df724c3049936d91d21db16dd25 Mon Sep 17 00:00:00 2001 From: kshinde2512 <67048554+kshinde2512@users.noreply.github.com> Date: Mon, 25 Apr 2022 19:20:45 +0530 Subject: [PATCH] Selenium error fix for Users and Service page (#4467) --- .../selenium/objectRepository/Common.java | 2 +- .../objectRepository/DashboardDetails.java | 4 +-- .../objectRepository/DatabaseServicePage.java | 7 +++++ .../selenium/objectRepository/MyDataPage.java | 4 +-- .../objectRepository/TableDetails.java | 2 +- .../selenium/objectRepository/UserPage.java | 4 +-- .../selenium/pages/common/CommonTests.java | 6 ++--- .../pages/common/UiExceptionHandling.java | 4 +-- .../DashboardDetailsPageTest.java | 2 +- .../DatabaseServicePageTest.java | 26 +++++++++++-------- .../selenium/pages/myData/MyDataPageTest.java | 4 +-- 11 files changed, 38 insertions(+), 27 deletions(-) diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/Common.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/Common.java index 586408da407..816713155c2 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/Common.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/Common.java @@ -54,7 +54,7 @@ public class Common { By tagCount = By.xpath("//div[@data-testid='tag-container']/div/div"); By errorMessage = By.cssSelector("[data-testid='error-message']"); By matchesInDescription = By.xpath("(//div[@data-testid='matches-stats'][1])/span[3]"); - By tagCountSearch = By.xpath("(//div[@data-testid='description-text'][1])/div/span/span[@class='text-highlighter']"); + By tagCountSearch = By.xpath("(//div[@data-testid='viewer-container'])[1]//span[@class='text-highlighter']"); By tagFilterCount = By.xpath("//div[@data-testid='filter-containers-2']/label"); By noSearchResult = By.cssSelector("[data-testid='no-search-results']"); By resultsCount = By.xpath("//div[@data-testid='search-container']/div"); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/DashboardDetails.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/DashboardDetails.java index d01853a4ca1..a3ac22f7631 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/DashboardDetails.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/DashboardDetails.java @@ -13,11 +13,11 @@ public class DashboardDetails { By dashboard = By.xpath("(//button[@data-testid='tab'])[3]"); By editChartDescription = By.xpath("//div[@data-testid='description']/span/span"); - By dashboardDescriptionBox = By.xpath("(//div[@data-testid='description']/div/span)[1]"); + By dashboardDescriptionBox = By.xpath("//div[@data-testid='viewer-container']/p"); By descriptionBox = By.xpath("(//div[@data-testid='description'])[2]"); By addChartTag = By.xpath("(//span[@data-testid='tags'])[2]"); By selectedTag = By.xpath("//span[@class='tw-no-underline hover:tw-no-underline tw-py-0.5 tw-px-2 tw-pl-2 tw-pr-1']"); By chartTags = By.xpath("//div[@data-testid='tag-container']/div/div"); - By breadCrumbTags = By.xpath("//div[@data-testid='breadcrumb-tags']/div"); + By breadCrumbTags = By.xpath("//div[@data-testid='entity-tags']/div"); By selectTier = By.cssSelector("[data-testid='select-tier-buuton']"); } diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/DatabaseServicePage.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/DatabaseServicePage.java index 2a3222cc663..6d58d40770e 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/DatabaseServicePage.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/DatabaseServicePage.java @@ -16,8 +16,15 @@ public class DatabaseServicePage { By deleteIngestion = By.cssSelector("[data-testid='delete']"); By selectInterval = By.xpath("//select[@id='ingestionType']"); By confirmationDeleteText = By.cssSelector("[data-testid='confirmation-text-input']"); + By viewService = By.cssSelector("[data-testid='view-service-button']"); + By clickDatabase = By.xpath("//tr[@data-testid='column']/td"); + By deleteDatabase = By.cssSelector("[data-testid='delete-button']"); public By ingestionInterval(String interval) { return By.xpath("//select[@id='ingestionType']/option[@value='" + interval + "']"); } + + public By serviceName(String serviceName) { + return By.cssSelector("[data-testid='service-name-" + serviceName + "']"); + } } diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/MyDataPage.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/MyDataPage.java index ca99deaf6fb..5c9a4447e1d 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/MyDataPage.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/MyDataPage.java @@ -23,8 +23,8 @@ public class MyDataPage { By pipelines = By.xpath("//a[@data-testid=\"pipelines\"]"); By services = By.xpath("//a[@data-testid=\"service\"]"); // By ingestion = By.linkText("Ingestion"); - By users = By.xpath("//a[@data-testid=\"user\"]"); - By teams = By.xpath("//a[@data-testid=\"terms\"]"); + By users = By.cssSelector("[data-testid='user']"); + By teams = By.cssSelector("[data-testid='terms']"); By searchBox = By.xpath("//input[@data-testid=\"searchBox\"]"); By tableName = By.linkText("dim_address"); By explore = By.xpath("//a[@data-testid=\"appbar-item\"]"); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/TableDetails.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/TableDetails.java index 3ec377ca244..79deb292946 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/TableDetails.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/TableDetails.java @@ -40,7 +40,7 @@ public class TableDetails { By version = By.xpath("//button[@data-testid=\"version-button\"]"); By versionDetailsGrid = By.xpath("//div[@class=\"tw-grid tw-gap-0.5\"]"); By versionRadioButton = By.xpath("//span[@data-testid=\"select-version\"]"); - By descriptionBox = By.xpath("(//div[@data-testid='description']/div/span)[1]"); + By descriptionBox = By.xpath("(//div[@data-testid='viewer-container']/p)[1]"); By breadCrumb = By.xpath("//li[@data-testid=\"breadcrumb-link\"]"); By sideDrawerLineage = By.xpath("//header[@class=\"tw-flex tw-justify-between\"]"); By breadCrumbTier = By.xpath("//div[@class=\"tw-flex tw-gap-1 tw-mb-2 tw-mt-1 tw-ml-7 tw-flex-wrap\"]"); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/UserPage.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/UserPage.java index d6e9a3e0a6a..9c3d54c2e8a 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/UserPage.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/UserPage.java @@ -14,8 +14,8 @@ public class UserPage { By rolesList = By.cssSelector("[data-testid='menu-button'][id='menu-button-User']"); By selectUser = By.xpath("//div[@data-testid='data-container']//p"); - By userFilterCount = By.xpath("(//span[@data-testid=\"filter-count\"])[9]"); - By adminFilterCount = By.xpath("(//span[@data-testid='filter-count'])[10]"); + By userFilterCount = By.xpath("//span[@data-testid='filter-count'][text()[contains(.,'101')]]"); + By adminFilterCount = By.xpath("//span[@data-testid='filter-count'][text()='1']"); By userListSearchBar = By.cssSelector("[data-testid='searchbar']"); By userListSearchResult = By.xpath("//div[@data-testid='user-card-container']/div/div[@data-testid='user-card-container']"); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/CommonTests.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/CommonTests.java index 67c94e02f55..399a521b67b 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/CommonTests.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/CommonTests.java @@ -306,9 +306,9 @@ class CommonTests { openHomePage(); Events.sendKeys(webDriver, common.searchBar(), "address"); // Search bar/dim Events.sendEnter(webDriver, common.searchBar()); - Thread.sleep(2000); - Object tagCount = webDriver.findElements(common.tagCountSearch()).size() - 1; - Thread.sleep(2000); + Thread.sleep(waitTime); + Object tagCount = webDriver.findElements(common.tagCountSearch()).size(); + Thread.sleep(waitTime); String matchesInDescription = webDriver.findElement(common.matchesInDescription()).getAttribute("innerHTML"); Assert.assertEquals((tagCount + " in Description,"), matchesInDescription); } diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/UiExceptionHandling.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/UiExceptionHandling.java index c92e87a7d78..4b88a5bc505 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/UiExceptionHandling.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/common/UiExceptionHandling.java @@ -84,7 +84,7 @@ class UiExceptionHandling { Events.click(webDriver, common.closeWhatsNew()); Events.click(webDriver, common.headerSettings()); interceptor("/api/v1/teams", "/api/v1/testing"); - Events.click(webDriver, common.headerSettingsMenu("Users")); + Events.click(webDriver, common.headerSettingsMenu("Teams & Users")); Events.click(webDriver, common.closeErrorMessage()); // Assert.assertEquals(400, 400); } @@ -118,7 +118,7 @@ class UiExceptionHandling { Events.sendKeys(webDriver, common.servicePort(), "3306"); Events.sendKeys(webDriver, common.databaseName(), "openmetadata_db"); interceptor("services/databaseServices", "services/testing"); - Events.click(webDriver, common.saveManage()); + Events.click(webDriver, common.saveServiceButton()); // Assert.assertEquals(500, 500); } diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/dashboardDetails/DashboardDetailsPageTest.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/dashboardDetails/DashboardDetailsPageTest.java index 3b06ec2f308..f72ca0459d0 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/dashboardDetails/DashboardDetailsPageTest.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/dashboardDetails/DashboardDetailsPageTest.java @@ -124,7 +124,7 @@ class DashboardDetailsPageTest { webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); openExplorePage(); Events.click(webDriver, dashboardDetails.dashboard()); - Events.click(webDriver, common.selectTable()); + Events.click(webDriver, common.selectTableLink(1)); Events.click(webDriver, common.addTag()); for (int i = 0; i < 3; i++) { Events.sendKeys(webDriver, common.enterAssociatedTagName(), "P"); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/databaseService/DatabaseServicePageTest.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/databaseService/DatabaseServicePageTest.java index 92b88235a29..a11ecc68a07 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/databaseService/DatabaseServicePageTest.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/databaseService/DatabaseServicePageTest.java @@ -35,7 +35,6 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.interactions.Actions; -import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.Assert; @@ -137,7 +136,7 @@ class DatabaseServicePageTest { void checkDatabaseServiceDetails() throws InterruptedException { openDatabaseServicePage(); Thread.sleep(2000); - Events.click(webDriver, common.containsText(serviceName)); + Events.click(webDriver, databaseServicePage.serviceName(serviceName)); Events.click(webDriver, common.editTagCategoryDescription()); Events.sendKeys(webDriver, common.focusedDescriptionBox(), faker.address().toString()); Events.click(webDriver, common.editDescriptionSaveButton()); @@ -147,22 +146,17 @@ class DatabaseServicePageTest { @Order(4) void checkIngestionTab() throws InterruptedException { openDatabaseServicePage(); - Events.click(webDriver, common.containsText(serviceName)); + Events.click(webDriver, databaseServicePage.serviceName(serviceName)); Events.click(webDriver, common.ingestion()); try { - WebElement runIngestion = - wait.until(ExpectedConditions.presenceOfElementLocated(databaseServicePage.runIngestion())); - if (runIngestion.isDisplayed()) { - Events.click(webDriver, databaseServicePage.runIngestion()); // run ingestion - } + Events.click(webDriver, databaseServicePage.runIngestion()); // run ingestion } catch (NoSuchElementException | TimeoutException e) { Assert.fail("Ingestion is not created"); } - webDriver.navigate().refresh(); Events.click(webDriver, databaseServicePage.editIngestion()); // edit ingestion Events.click(webDriver, common.nextButton()); Events.click(webDriver, common.deployButton()); - Thread.sleep(waitTime); + Events.click(webDriver, databaseServicePage.viewService()); Events.click(webDriver, databaseServicePage.deleteIngestion()); // delete ingestion Events.sendKeys(webDriver, databaseServicePage.confirmationDeleteText(), "DELETE"); Events.click(webDriver, common.confirmButton()); @@ -172,7 +166,7 @@ class DatabaseServicePageTest { @Order(5) void checkConnectionConfigTab() throws InterruptedException { openDatabaseServicePage(); - Events.click(webDriver, common.containsText(serviceName)); + Events.click(webDriver, databaseServicePage.serviceName(serviceName)); Events.click(webDriver, common.connectionConfig()); Events.sendKeys(webDriver, common.serviceUsername(), "test"); Events.sendKeys(webDriver, common.servicePassword(), "test"); @@ -193,6 +187,16 @@ class DatabaseServicePageTest { @Order(6) void deleteDatabaseService() throws InterruptedException { openDatabaseServicePage(); + Events.click(webDriver, databaseServicePage.serviceName(serviceName)); + Thread.sleep(waitTime); + Events.click(webDriver, databaseServicePage.clickDatabase()); + Events.click(webDriver, common.manage()); + Events.click(webDriver, databaseServicePage.deleteDatabase()); + Events.sendKeys(webDriver, databaseServicePage.confirmationDeleteText(), "DELETE"); + Events.click(webDriver, common.confirmButton()); + Thread.sleep(waitTime); + Events.click(webDriver, common.headerSettings()); + Events.click(webDriver, common.headerSettingsServices()); Events.click(webDriver, common.deleteServiceButton(serviceName)); Events.click(webDriver, common.saveEditedService()); Thread.sleep(waitTime); diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/myData/MyDataPageTest.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/myData/MyDataPageTest.java index 42b158c3140..f93ff6b932f 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/myData/MyDataPageTest.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/myData/MyDataPageTest.java @@ -128,11 +128,11 @@ class MyDataPageTest { webDriver.navigate().back(); Events.click(webDriver, myDataPage.users()); url = webDriver.getCurrentUrl(); - Assert.assertEquals(url, "http://localhost:8585/user-list"); + Assert.assertEquals(url, "http://localhost:8585/teams-and-users/users"); webDriver.navigate().back(); Events.click(webDriver, myDataPage.teams()); url = webDriver.getCurrentUrl(); - Assert.assertEquals(url, "http://localhost:8585/teams"); + Assert.assertEquals(url, "http://localhost:8585/teams-and-users"); } @Test