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 46b81c7148d..4ffb3e44d98 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 @@ -1,7 +1,9 @@ package org.openmetadata.catalog.selenium.objectRepository; +import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; public class Common { WebDriver webDriver; @@ -21,7 +23,7 @@ public class Common { By editDescriptionSaveButton = By.cssSelector("[data-testid='save']"); By closeWhatsNew = By.cssSelector("[data-testid='closeWhatsNew']"); By headerSettings = By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']"); - + By explore = By.xpath("[data-testid='appbar-item'][id='explore']"); By headerSettingsServices = By.cssSelector("[data-testid='menu-item-Services']"); By addServiceButton = By.cssSelector("[data-testid='add-service-button']"); By noServicesAddServiceButton = By.cssSelector("[data-testid='add-new-user-button']"); @@ -58,6 +60,70 @@ public class Common { By matchesStats = By.cssSelector("[data-testid='matches-stats']"); By editLineageButton = By.cssSelector("[data-testid='edit-lineage']"); By whatsNewModalChangeLogs = By.cssSelector("[data-testid='WhatsNewModalChangeLogs']"); + By tableCount = By.xpath("(//span[@data-testid='filter-count'])[1]"); + By removeAssociatedTag = By.xpath("//span[@data-testid=\"remove\"]"); + By breadCrumb = By.xpath("//li[@data-testid=\"breadcrumb-link\"]"); + By descriptionContainer = By.xpath("//div[@data-testid='description']/div/p"); + By manage = By.xpath("//button[@data-testid='tab'][contains(text(),'Manage')]"); + By selectTier = By.xpath("(//div[@data-testid=\"card-list\"]/div/div/p)[1]"); + By difference = By.xpath("//span[@class='diff-added']"); + By searchBox = By.xpath("//input[@data-testid=\"searchBox\"]"); + By follow = By.cssSelector("button[data-testid='follow-button']"); + By users = By.xpath("//div[@data-testid='dropdown-list']//div[2]//button[2]"); + By selectUser = By.xpath("//div[@data-testid=\"list-item\"]"); + By saveManage = By.cssSelector("[data-testid='saveManageTab']"); + By editDescriptionButton = By.xpath("//button[@data-testid= 'edit-description']"); + By editDescriptionBox = By.xpath("//div[@data-testid='enterDescription']/div/div[2]/div/div/div/div/div/div"); + By version = By.xpath("//button[@data-testid=\"version-button\"]"); + By versionRadioButton = By.xpath("//span[@data-testid=\"select-version\"]"); + + public By version() { + return version; + } + + public List versionRadioButton() { + return webDriver.findElements(versionRadioButton); + } + + public By editDescriptionButton() { + return editDescriptionButton; + } + + public By editDescriptionBox() { + return editDescriptionBox; + } + + public By saveManage() { + return saveManage; + } + + public By selectUser() { + return selectUser; + } + + public By clickUsers() { + return users; + } + + public By clickFollow() { + return follow; + } + + public By difference() { + return difference; + } + + public By selectTier1() { + return selectTier; + } + + public By manage() { + return manage; + } + + public By descriptionContainer() { + return descriptionContainer; + } public By displayName() { return displayName; @@ -306,4 +372,24 @@ public class Common { public By overviewFilterCount(String entity) { return By.xpath("//div[@data-testid='" + entity + "-summary']//span[@data-testid='filter-count']"); } + + public By explore() { + return explore; + } + + public By getTableCount() { + return tableCount; + } + + public By removeAssociatedTag() { + return removeAssociatedTag; + } + + public List breadCrumb() { + return webDriver.findElements(breadCrumb); + } + + public By getSearchBox() { + return searchBox; + } } diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/TopicDetails.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/TopicDetails.java index 8b2c75c812e..c07bea2d761 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/TopicDetails.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/objectRepository/TopicDetails.java @@ -13,14 +13,15 @@ public class TopicDetails { this.webDriver = webDriver; } - By addTag = By.xpath("(//div[@class=\"tw-flex tw-flex-wrap\"])"); + By addTag = By.xpath("//div[@data-testid=\"tag-conatiner\"]"); By selectTag = By.xpath("(//div[@data-testid=\"list-item\"])[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 breadCrumbTags = By.xpath("//span[@class=\"tw-no-underline hover:tw-no-underline tw-px-1\"]"); + By breadCrumbTags = By.xpath("//span[@data-testid=\"tags\"]"); By editDescriptionButton = By.xpath("//button[@data-testid=\"edit-description\"]"); By config = By.xpath("(//button[@data-testid = \"tab\"])[2]"); By manage = By.xpath("(//button[@data-testid = \"tab\"])[3]"); + By topicName = By.linkText("orders"); public By addTag() { return addTag; @@ -34,8 +35,8 @@ public class TopicDetails { return webDriver.findElements(selectedTag); } - public List breadCrumbTag() { - return webDriver.findElements(breadCrumbTags); + public By breadCrumbTag() { + return breadCrumbTags; } public By editDescriptionButton() { @@ -49,4 +50,8 @@ public class TopicDetails { public By manage() { return manage; } + + public By topicName() { + return topicName; + } } diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/tableDetails/TableDetailsPageTest.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/tableDetails/TableDetailsPageTest.java index b64147af61b..dca99814241 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/tableDetails/TableDetailsPageTest.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/tableDetails/TableDetailsPageTest.java @@ -160,13 +160,13 @@ public class TableDetailsPageTest { @Order(6) void removeTags() { openExplorePage(); - List tagDisplayed = topicDetails.breadCrumbTag(); + List tagDisplayed = webDriver.findElements(topicDetails.breadCrumbTag()); Events.click(webDriver, explorePage.selectTable()); Events.click(webDriver, tableDetails.tagName()); Events.click(webDriver, tableDetails.removeTag()); Events.click(webDriver, tableDetails.saveTag()); webDriver.navigate().refresh(); - List updatedTags = topicDetails.breadCrumbTag(); + List updatedTags = webDriver.findElements(topicDetails.breadCrumbTag()); if (updatedTags.contains(tagDisplayed.get(1))) { Assert.fail("Selected Tag is not removed"); } else { diff --git a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/topicDetails/TopicDetailsPageTest.java b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/topicDetails/TopicDetailsPageTest.java index 427ff3796ce..634f5772ec3 100644 --- a/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/topicDetails/TopicDetailsPageTest.java +++ b/openmetadata-ui/src/test/java/org/openmetadata/catalog/selenium/pages/topicDetails/TopicDetailsPageTest.java @@ -16,21 +16,18 @@ package org.openmetadata.catalog.selenium.pages.topicDetails; import com.github.javafaker.Faker; import java.time.Duration; import java.util.ArrayList; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.MethodOrderer; -import org.junit.jupiter.api.Order; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestMethodOrder; +import java.util.List; +import java.util.logging.Logger; +import org.junit.jupiter.api.*; import org.openmetadata.catalog.selenium.events.Events; +import org.openmetadata.catalog.selenium.objectRepository.*; import org.openmetadata.catalog.selenium.properties.Property; -import org.openqa.selenium.By; -import org.openqa.selenium.WebDriver; +import org.openqa.selenium.*; 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; @Order(7) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @@ -41,9 +38,19 @@ public class TopicDetailsPageTest { static String enterDescription = "//div[@data-testid='enterDescription']/div/div[2]/div/div/div/div/div/div"; static Actions actions; static WebDriverWait wait; + static String topic = "orders"; Integer waitTime = Property.getInstance().getSleepTime(); String webDriverInstance = Property.getInstance().getWebDriver(); String webDriverPath = Property.getInstance().getWebDriverPath(); + Common common; + TopicDetails topicDetails; + ExplorePage explorePage; + MyDataPage myDataPage; + private static final Logger LOG = Logger.getLogger(TopicDetails.class.getName()); + int counter = 2; + String xpath = "//li[@data-testid='breadcrumb-link'][" + counter + "]"; + String description = "Test@1234"; + String updatedDescription = "Updated Description"; @BeforeEach public void openMetadataWindow() { @@ -51,7 +58,11 @@ public class TopicDetailsPageTest { ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); options.addArguments("--window-size=1280,800"); - webDriver = new ChromeDriver(options); + webDriver = new ChromeDriver(); + common = new Common(webDriver); + topicDetails = new TopicDetails(webDriver); + explorePage = new ExplorePage(webDriver); + myDataPage = new MyDataPage(webDriver); actions = new Actions(webDriver); wait = new WebDriverWait(webDriver, Duration.ofSeconds(30)); webDriver.manage().window().maximize(); @@ -60,176 +71,170 @@ public class TopicDetailsPageTest { @Test @Order(1) - public void openExplorePage() throws InterruptedException { - Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new - Events.click(webDriver, By.cssSelector("[data-testid='appbar-item'][id='explore']")); // Explore - Events.click(webDriver, By.xpath("(//button[@data-testid='tab'])[2]")); // Topics - Thread.sleep(waitTime); + void openExplorePage() throws InterruptedException { + Events.click(webDriver, common.closeWhatsNew()); + Events.click(webDriver, explorePage.explore()); + Thread.sleep(3000); + if (webDriver.findElement(common.getTableCount()).isDisplayed()) { + LOG.info("Passed"); + } else { + Assert.fail(); + } } @Test @Order(2) public void checkTabs() throws InterruptedException { + webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); openExplorePage(); - Events.click(webDriver, By.cssSelector("[data-testid='sortBy']")); // Sort By - Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); // Last Updated - Thread.sleep(waitTime); - Events.click(webDriver, By.xpath("(//button[@data-testid='table-link'])[last()]")); - Thread.sleep(waitTime); - Events.click(webDriver, By.xpath("(//button[@data-testid='tab'])[2]")); - Events.click(webDriver, By.xpath("(//button[@data-testid='tab'])[3]")); + Events.sendKeys(webDriver, common.getSearchBox(), topic); + Events.click(webDriver, topicDetails.topicName()); + Events.click(webDriver, topicDetails.config()); + Events.click(webDriver, common.manage()); } @Test @Order(3) - public void checkFollow() throws InterruptedException { + void checkFollow() throws InterruptedException { + webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); openExplorePage(); - Events.click(webDriver, By.cssSelector("[data-testid='sortBy']")); // Sort By - Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); // Last Updated - Events.click(webDriver, By.xpath("(//button[@data-testid='table-link'])[last()]")); - Thread.sleep(waitTime); - Events.click(webDriver, By.cssSelector("[data-testid='follow-button']")); - Events.click(webDriver, By.cssSelector("[data-testid='getFollowerDetail']")); - Events.click(webDriver, By.cssSelector("[data-testid='follow-button']")); - Events.click(webDriver, By.cssSelector("[data-testid='getFollowerDetail']")); + Events.sendKeys(webDriver, common.getSearchBox(), topic); + Events.click(webDriver, topicDetails.topicName()); + String follow = webDriver.findElement(common.clickFollow()).getText(); + if (follow.equals("Unfollow")) { + Events.click(webDriver, common.clickFollow()); + Events.click(webDriver, common.clickFollow()); + } else { + Events.click(webDriver, common.clickFollow()); + } + Events.click(webDriver, myDataPage.clickHome()); + String tableName = webDriver.findElement(myDataPage.following()).getText(); + Assert.assertEquals(tableName, "Started following " + topic); } @Test @Order(4) public void addTags() throws InterruptedException { + webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); openExplorePage(); - Events.click(webDriver, By.cssSelector("[data-testid='sortBy']")); // Sort By - Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); // Last Updated - Events.click(webDriver, By.xpath("(//button[@data-testid='table-link'])[last()]")); - Thread.sleep(waitTime); - Events.click(webDriver, By.cssSelector("[data-testid='tags']")); - Events.click(webDriver, By.cssSelector("[data-testid='associatedTagName']")); - for (int i = 0; i <= 1; i++) { - Events.sendKeys(webDriver, By.cssSelector("[data-testid='associatedTagName']"), "P"); - Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); + String[] selectedTag = new String[3]; + Events.click(webDriver, explorePage.topics()); + Events.click(webDriver, explorePage.selectTable()); + Events.click(webDriver, topicDetails.addTag()); + Events.click(webDriver, common.enterAssociatedTagName()); + for (int i = 0; i < 3; i++) { + Events.sendKeys(webDriver, common.enterAssociatedTagName(), "P"); + Events.click(webDriver, common.tagListItem()); + selectedTag[i] = common.tagListItem().toString(); + } + Events.click(webDriver, common.saveAssociatedTag()); + webDriver.navigate().refresh(); + List TagDisplayed = webDriver.findElements(topicDetails.breadCrumbTag()); + Thread.sleep(waitTime); + for (int j = 0; j < TagDisplayed.size(); j++) { + Assert.assertEquals(TagDisplayed.get(j).getText(), selectedTag[j]); } - Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']")); } @Test @Order(5) - public void removeTag() throws InterruptedException { + void removeTags() throws InterruptedException { + webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); openExplorePage(); - Events.click(webDriver, By.cssSelector("[data-testid='sortBy']")); // Sort By - Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); // Last Updated - Events.click(webDriver, By.xpath("(//button[@data-testid='table-link'])[1]")); - Events.click(webDriver, By.cssSelector("[data-testid='tag-conatiner']")); - Thread.sleep(waitTime); - Events.click(webDriver, By.cssSelector("[data-testid='remove']")); - Thread.sleep(waitTime); - Events.click(webDriver, By.cssSelector("[data-testid='remove']")); - Thread.sleep(waitTime); - Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']")); + Events.click(webDriver, explorePage.topics()); + Events.click(webDriver, explorePage.selectTable()); + List tagDisplayed = webDriver.findElements(topicDetails.breadCrumbTag()); + Events.click(webDriver, topicDetails.addTag()); + Events.click(webDriver, common.removeAssociatedTag()); + Events.click(webDriver, common.saveAssociatedTag()); + webDriver.navigate().refresh(); + List updatedTags = webDriver.findElements(topicDetails.breadCrumbTag()); + if (updatedTags.get(1).equals(tagDisplayed.get(1))) { + Assert.fail("Selected Tag is not removed"); + } else { + LOG.info("Passed"); + } } @Test @Order(6) - public void editDescription() throws InterruptedException { + void editDescription() throws InterruptedException { + webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); openExplorePage(); - String editDescription = faker.address().toString(); - String updateDescription = faker.address().toString(); - Events.click(webDriver, By.cssSelector("[data-testid='sortBy']")); // Sort By - Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); // Last Updated - Events.click(webDriver, By.xpath("(//button[@data-testid='table-link'])[last()]")); - Events.click(webDriver, By.cssSelector("[data-testid='edit-description']")); - Events.sendKeys(webDriver, By.xpath(enterDescription), editDescription); - Events.click(webDriver, By.cssSelector("[data-testid='save']")); + Events.click(webDriver, explorePage.topics()); + Events.click(webDriver, explorePage.selectTable()); + Events.click(webDriver, common.editDescriptionButton()); + Events.sendKeys(webDriver, common.editDescriptionBox(), Keys.CONTROL + "A"); + Events.sendKeys(webDriver, common.editDescriptionBox(), description); + Events.click(webDriver, common.editDescriptionSaveButton()); + Thread.sleep(waitTime); webDriver.navigate().refresh(); - Events.click(webDriver, By.cssSelector("[data-testid='edit-description']")); - Thread.sleep(1000); - webDriver.findElement(By.xpath("//*[text()[contains(.,'" + editDescription + "')]] ")); - Events.sendKeys(webDriver, By.xpath(enterDescription), updateDescription); - Events.click(webDriver, By.cssSelector("[data-testid='save']")); + Events.click(webDriver, common.editDescriptionButton()); + Events.sendKeys(webDriver, common.editDescriptionBox(), Keys.CONTROL + "A"); + Events.sendKeys(webDriver, common.editDescriptionBox(), updatedDescription); + Events.click(webDriver, common.editDescriptionSaveButton()); webDriver.navigate().refresh(); - Events.click(webDriver, By.cssSelector("[data-testid='edit-description']")); - Thread.sleep(1000); - webDriver.findElement(By.xpath("//*[text()[contains(.,'" + editDescription + updateDescription + "')]] ")); - Events.click(webDriver, By.cssSelector("[data-testid='cancel']")); + String checkDescription = webDriver.findElement(common.descriptionContainer()).getText(); + Assert.assertEquals(checkDescription, updatedDescription); } @Test @Order(7) public void checkManage() throws InterruptedException { openExplorePage(); - Events.click(webDriver, By.cssSelector("[data-testid='sortBy']")); // Sort By - Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); // Last Updated - Events.click(webDriver, By.xpath("(//button[@data-testid='table-link'])[last()]")); - Events.click(webDriver, By.xpath("(//button[@data-testid='tab'])[3]")); - Events.click(webDriver, By.cssSelector("[data-testid='owner-dropdown']")); // Owner - Events.sendKeys(webDriver, By.cssSelector("[data-testid='searchInputText']"), "Cloud"); - Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); // Select User/Team - Events.click(webDriver, By.cssSelector("[data-testid='card-list']")); // Select Tier - Events.click(webDriver, By.cssSelector("[data-testid='saveManageTab']")); // Save - webDriver.navigate().back(); - webDriver.navigate().refresh(); + Events.click(webDriver, explorePage.topics()); + Events.click(webDriver, explorePage.selectTable()); + Thread.sleep(waitTime); + Events.click(webDriver, common.manage()); + Events.click(webDriver, common.ownerDropdown()); + Events.click(webDriver, common.clickUsers()); + Events.click(webDriver, common.selectUser()); + Events.click(webDriver, common.selectTier1()); + Events.click(webDriver, common.saveManage()); } @Test @Order(8) - public void checkBreadCrumb() throws InterruptedException { + void checkBreadCrumb() throws Exception { + webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); openExplorePage(); - String editDescription = faker.address().toString(); - String updateDescription = faker.address().toString(); - Events.click(webDriver, By.cssSelector("[data-testid='sortBy']")); // Sort By - Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); // Last Updated - Events.click(webDriver, By.xpath("(//button[@data-testid='table-link'])[last()]")); - wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("[data-testid='breadcrumb-link']"))); - Events.click(webDriver, By.cssSelector("[data-testid='breadcrumb-link']")); - wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("[data-testid='edit-description']"))); - Events.click(webDriver, By.cssSelector("[data-testid='edit-description']")); // edit description - Events.sendKeys(webDriver, By.xpath(enterDescription), editDescription); - Events.click(webDriver, By.cssSelector("[data-testid='save']")); - webDriver.navigate().refresh(); - Events.click(webDriver, By.cssSelector("[data-testid='edit-description']")); // edit description - Thread.sleep(1000); - webDriver.findElement(By.xpath("//*[text()[contains(.,'" + editDescription + "')]] ")); - Events.sendKeys(webDriver, By.xpath(enterDescription), updateDescription); - Events.click(webDriver, By.cssSelector("[data-testid='save']")); - webDriver.navigate().refresh(); - Events.click(webDriver, By.cssSelector("[data-testid='edit-description']")); - Thread.sleep(1000); - webDriver.findElement(By.xpath("//*[text()[contains(.,'" + editDescription + updateDescription + "')]] ")); - Events.click(webDriver, By.cssSelector("[data-testid='cancel']")); - for (int i = 1; i <= 3; i++) { // check topics in service - Events.click(webDriver, By.xpath("(//tr[@data-testid='column']//td[1]/a)" + "[" + i + "]")); // topics - Events.click(webDriver, By.cssSelector("[data-testid='edit-description']")); // edit description - Events.sendKeys(webDriver, By.xpath(enterDescription), editDescription); - Events.click(webDriver, By.cssSelector("[data-testid='save']")); - webDriver.navigate().refresh(); - Events.click(webDriver, By.cssSelector("[data-testid='edit-description']")); // edit description - Thread.sleep(1000); - webDriver.findElement(By.xpath("//*[text()[contains(.,'" + editDescription + "')]] ")); - Events.sendKeys(webDriver, By.xpath(enterDescription), updateDescription); - Events.click(webDriver, By.cssSelector("[data-testid='save']")); - webDriver.navigate().refresh(); - Events.click(webDriver, By.cssSelector("[data-testid='edit-description']")); - Thread.sleep(1000); - webDriver.findElement(By.xpath("//*[text()[contains(.,'" + editDescription + updateDescription + "')]] ")); - Events.click(webDriver, By.cssSelector("[data-testid='cancel']")); - Thread.sleep(waitTime); - webDriver.navigate().back(); + Events.click(webDriver, explorePage.topics()); + Events.click(webDriver, explorePage.selectTable()); + List br = common.breadCrumb(); + // Using for loop to check breadcrumb links + // Since after navigating back we are facing StaleElementException using try catch block. + for (WebElement link : br) { + try { + link.click(); + webDriver.navigate().back(); + } catch (StaleElementReferenceException ex) { + WebElement breadcrumb_link = webDriver.findElement(By.xpath(xpath)); + breadcrumb_link.click(); + } } } @Test @Order(9) public void checkVersion() throws InterruptedException { + webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); openExplorePage(); - Events.click(webDriver, By.xpath("(//button[@data-testid='table-link'])[last()]")); - Events.click(webDriver, By.cssSelector("[data-testid='version-button']")); - Events.click(webDriver, By.cssSelector("[data-testid='closeDrawer']")); - Events.click(webDriver, By.cssSelector("[data-testid='edit-description']")); - Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); - Events.click(webDriver, By.cssSelector("[data-testid='save']")); - Events.click(webDriver, By.cssSelector("[data-testid='version-button']")); - Events.click(webDriver, By.xpath("(//span[@data-testid='select-version'])[2]")); - Events.click(webDriver, By.xpath("(//span[@data-testid='select-version'])[1]")); - Events.click(webDriver, By.cssSelector("[data-testid='closeDrawer']")); + int counter = 1; + Events.click(webDriver, explorePage.topics()); + Events.click(webDriver, explorePage.selectTable()); + Events.click(webDriver, common.version()); + List versionRadioButton = common.versionRadioButton(); + for (WebElement e : versionRadioButton) { + counter = counter + 1; + if (counter == versionRadioButton.size()) { + break; + } + e.click(); + Thread.sleep(waitTime); + Assert.assertTrue(webDriver.findElement(common.difference()).isDisplayed()); + ((JavascriptExecutor) webDriver).executeScript("arguments[0].scrollIntoView(true);", e); + } + Events.click(webDriver, common.version()); } @AfterEach