Selenium fixes (#4495)

* Minor code change

* Roles and Exception handling fix

* Error-fix for roles webooks and error handling

* Webhooks failure

* webhooks fix

* Glossary page changes
This commit is contained in:
kshinde2512 2022-04-26 21:34:42 +05:30 committed by GitHub
parent f1da85036f
commit c3589c0ac3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 39 additions and 58 deletions

View File

@ -26,6 +26,7 @@ public class RolesPage {
By policiesDropdown = By.xpath("//div[@class=' css-tlfecz-indicatorContainer']");
By listItem = By.xpath("//*[@id='react-select-2-listbox']");
By descriptionContainer = By.cssSelector("[data-testid='viewer-container']");
By ruleName = By.xpath("(//td[@class='tableBody-cell']/p)[1]");
public By selectOperation(String operation) {
return By.cssSelector("[value='" + operation + "']");

View File

@ -12,7 +12,7 @@ public class Webhooks {
@NotNull WebDriver webDriver;
By webhookLink = By.linkText("Webhooks");
By addWebhook = By.cssSelector("[data-testid='add-webhook-button']");
By addWebhook = By.xpath("//button[@data-testid='add-webhook-button']");
By name = By.xpath("//input[@data-testid='name']");
By descriptionBox = By.xpath("//div[@class='ProseMirror']");
By focusedDescriptionBox = By.xpath("//div[@class='ProseMirror ProseMirror-focused']");
@ -21,6 +21,7 @@ public class Webhooks {
By entityCreatedMenu = By.xpath("(//button[@id='menu-button-select entities'])[1]");
By allEntities = By.xpath("(//input[@type='checkbox'])[2]");
By toast = By.xpath("(//div[@class='Toastify__toast-body']/div)[2]");
By clickToCloseDropdown = By.cssSelector("[class='page-container-v1 tw-bg-body-main']");
public By checkWebhook(String webHookName) {
return By.xpath("//button[@data-testid='webhook-link'][text()='" + webHookName + "']");

View File

@ -54,18 +54,19 @@ class WebhooksPageTest {
@Test
@Order(1)
void openWebHookPage() {
void openWebHookPage() throws InterruptedException {
Events.click(webDriver, common.closeWhatsNew()); // Close What's new
Events.click(webDriver, common.headerSettings()); // Setting
Events.click(webDriver, webhooks.webhookLink());
Thread.sleep(waitTime);
}
@Test
@Order(2)
void addWebHook() throws InterruptedException {
String name = faker.name().name();
webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
openWebHookPage();
Thread.sleep(waitTime);
Events.click(webDriver, webhooks.addWebhook());
Events.sendKeys(webDriver, webhooks.name(), name);
Events.click(webDriver, webhooks.descriptionBox());
@ -74,8 +75,7 @@ class WebhooksPageTest {
Events.click(webDriver, webhooks.checkbox());
Events.click(webDriver, webhooks.entityCreatedMenu());
Events.click(webDriver, webhooks.allEntities());
actions.click();
actions.perform();
Events.click(webDriver, webhooks.clickToCloseDropdown());
Events.click(webDriver, common.saveWebhook());
Thread.sleep(waitTime);
WebElement checkName = wait.until(ExpectedConditions.presenceOfElementLocated(webhooks.checkWebhook(name)));
@ -99,8 +99,7 @@ class WebhooksPageTest {
Events.click(webDriver, webhooks.checkbox());
Events.click(webDriver, webhooks.entityCreatedMenu());
Events.click(webDriver, webhooks.allEntities());
actions.click();
actions.perform();
Events.click(webDriver, webhooks.clickToCloseDropdown());
Events.click(webDriver, common.saveWebhook());
Thread.sleep(waitTime);
}
@ -123,8 +122,7 @@ class WebhooksPageTest {
Thread.sleep(waitTime);
Events.click(webDriver, webhooks.entityCreatedMenu());
Events.click(webDriver, webhooks.allEntities());
actions.click();
actions.perform();
Events.click(webDriver, webhooks.clickToCloseDropdown());
Events.click(webDriver, common.saveWebhook());
WebElement errorMessage = webDriver.findElement(common.errorMessage());
Assert.assertTrue(errorMessage.isDisplayed());
@ -133,7 +131,7 @@ class WebhooksPageTest {
@Test
@Order(5)
void checkBlankEndpoint() {
void checkBlankEndpoint() throws InterruptedException {
webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
openWebHookPage();
Events.click(webDriver, webhooks.addWebhook());
@ -144,8 +142,7 @@ class WebhooksPageTest {
Events.click(webDriver, webhooks.checkbox());
Events.click(webDriver, webhooks.entityCreatedMenu());
Events.click(webDriver, webhooks.allEntities());
actions.click();
actions.perform();
Events.click(webDriver, webhooks.clickToCloseDropdown());
Events.click(webDriver, common.saveWebhook());
WebElement errorMessage = webDriver.findElement(common.errorMessage());
Assert.assertTrue(errorMessage.isDisplayed());
@ -154,7 +151,7 @@ class WebhooksPageTest {
@Test
@Order(6)
void checkBlankEntityCheckbox() {
void checkBlankEntityCheckbox() throws InterruptedException {
webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
openWebHookPage();
Events.click(webDriver, webhooks.addWebhook());

View File

@ -75,6 +75,7 @@ class UiExceptionHandling {
webDriver = new ChromeDriver(options);
common = new Common(webDriver);
actions = new Actions(webDriver);
databaseServicePage = new DatabaseServicePage(webDriver);
wait = new WebDriverWait(webDriver, Duration.ofSeconds(30));
webDriver.manage().window().maximize();
webDriver.get(url);
@ -129,7 +130,7 @@ class UiExceptionHandling {
Events.click(webDriver, common.closeWhatsNew());
Events.click(webDriver, common.headerSettings()); // Setting
Events.click(webDriver, common.headerSettingsMenu("Services")); // Setting/Services
Events.click(webDriver, common.containsText("Glue"));
Events.click(webDriver, databaseServicePage.serviceName("sample_data"));
Events.click(webDriver, common.editTagCategoryDescription());
Events.sendKeys(webDriver, common.focusedDescriptionBox(), faker.address().toString());
interceptor("services/databaseServices", "services/testing");
@ -146,7 +147,7 @@ class UiExceptionHandling {
Events.click(webDriver, common.containsText("Glue"));
Events.click(webDriver, common.manage());
Events.click(webDriver, databaseServicePage.deleteDatabase());
Events.sendKeys(webDriver, databaseServicePage.confirmationDeleteText(), "Delete");
Events.sendKeys(webDriver, databaseServicePage.confirmationDeleteText(), "DELETE");
Events.click(webDriver, common.confirmButton());
interceptor("services/databaseServices", "services/testing");
// Assert.assertEquals(500, 500);

View File

@ -219,7 +219,7 @@ class Explore {
// Adding description to check last updated sort
Events.click(webDriver, common.selectTableLink(1));
Events.click(webDriver, tableDetails.editDescriptionButton());
Events.sendKeys(webDriver, common.focusedDescriptionBox(), Keys.COMMAND + "A");
Events.sendKeys(webDriver, common.focusedDescriptionBox(), Keys.CONTROL + "A");
Events.sendKeys(webDriver, common.focusedDescriptionBox(), sendKeys);
Events.click(webDriver, tableDetails.saveTableDescription());
Thread.sleep(2000);

View File

@ -122,19 +122,6 @@ class GlossaryPageTest {
Assert.assertEquals(reviewerCount.toString(), "4");
}
@Test
@Order(5)
void deleteGlossaryReviewer() throws InterruptedException {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Thread.sleep(waitTime);
actions.moveToElement(webDriver.findElement(common.removeAssociatedTag())).perform();
Events.click(webDriver, common.removeAssociatedTag());
Thread.sleep(waitTime);
Object reviewerCount = webDriver.findElements(common.reviewCount()).size();
Assert.assertEquals(reviewerCount.toString(), "3");
}
@Test
@Order(6)
void removeAddedTagsToGlossary() throws InterruptedException {
@ -159,7 +146,7 @@ class GlossaryPageTest {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.addGlossaryReviewer());
for (int i = 1; i <= 3; i++) {
for (int i = 1; i <= 4; i++) {
Events.click(webDriver, glossary.checkboxAddUser(i));
}
Events.click(webDriver, common.descriptionSaveButton());
@ -194,8 +181,6 @@ class GlossaryPageTest {
@Order(9)
void addTagToTerm() throws InterruptedException {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(termName));
Events.click(webDriver, common.breadCrumbTags());
Events.click(webDriver, common.enterAssociatedTagName());
@ -213,8 +198,6 @@ class GlossaryPageTest {
@Order(10)
void addTermReviewer() throws InterruptedException {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(termName));
Events.click(webDriver, common.manage());
Events.click(webDriver, common.addGlossaryReviewer());
@ -231,32 +214,15 @@ class GlossaryPageTest {
Assert.assertEquals(reviewerCount.toString(), "3");
}
@Test
@Order(11)
void deleteTermReviewer() throws InterruptedException {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(termName));
Events.click(webDriver, common.manage());
Thread.sleep(waitTime);
actions.moveToElement(webDriver.findElement(common.removeAssociatedTag())).perform();
Events.click(webDriver, common.removeAssociatedTag());
Thread.sleep(waitTime);
Object reviewerCount = webDriver.findElements(common.reviewCount()).size();
Assert.assertEquals(reviewerCount.toString(), "2");
}
@Test
@Order(12)
void removeAddedReviewersToTerm() throws InterruptedException {
openGlossaryPage();
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(glossaryName));
Events.click(webDriver, common.containsText(termName));
Events.click(webDriver, common.manage());
Thread.sleep(waitTime);
actions.moveToElement(webDriver.findElement(common.removeAssociatedTag())).perform();
for (int i = 1; i <= 2; i++) {
for (int i = 1; i <= 3; i++) {
Events.click(webDriver, common.removeAssociatedTag());
Thread.sleep(waitTime);
}

View File

@ -3,6 +3,7 @@ package org.openmetadata.catalog.selenium.pages.roles;
import com.github.javafaker.Faker;
import java.time.Duration;
import java.util.ArrayList;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.MethodOrderer;
@ -23,9 +24,11 @@ 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.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
@Slf4j
@Order(19)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class RolesPageTest {
@ -118,8 +121,9 @@ class RolesPageTest {
openRolesPage();
Events.click(webDriver, common.containsText(roleDisplayName));
Events.click(webDriver, rolesPage.addRule());
Select se = new Select(webDriver.findElement(rolesPage.listOperation()));
Events.click(webDriver, rolesPage.listOperation());
Events.click(webDriver, rolesPage.selectOperation("UpdateDescription"));
se.selectByVisibleText("Update Teams");
Events.click(webDriver, rolesPage.listAccess());
Events.click(webDriver, rolesPage.selectAccess("allow"));
Events.click(webDriver, common.descriptionSaveButton());
@ -136,11 +140,12 @@ class RolesPageTest {
@Order(5)
void editRule() throws InterruptedException {
openRolesPage();
Events.click(webDriver, common.containsText("Data Steward"));
Events.click(webDriver, common.containsText("Data Consumer"));
Events.click(webDriver, rolesPage.editRuleButton());
Events.click(webDriver, rolesPage.listAccess());
Events.click(webDriver, rolesPage.selectAccess("deny"));
Select se = new Select(webDriver.findElement(rolesPage.listAccess()));
se.selectByVisibleText("DENY");
Events.click(webDriver, common.descriptionSaveButton());
Thread.sleep(waitTime);
String access = webDriver.findElement(rolesPage.accessValue()).getAttribute("innerHTML");
Assert.assertEquals(access, "DENY");
}
@ -150,8 +155,18 @@ class RolesPageTest {
void deleteRule() throws InterruptedException {
openRolesPage();
Events.click(webDriver, common.containsText(roleDisplayName));
String ruleName = webDriver.findElement(rolesPage.ruleName()).getText();
Events.click(webDriver, rolesPage.deleteRuleButton());
Events.click(webDriver, common.saveEditedService());
Thread.sleep(waitTime);
webDriver.navigate().refresh();
try {
if (webDriver.findElement(common.containsText(ruleName)).isDisplayed()) {
Assert.fail("Rule not deleted");
}
} catch (NoSuchElementException | TimeoutException e) {
LOG.info("Success");
}
}
@Test
@ -235,7 +250,7 @@ class RolesPageTest {
@Test
@Order(10)
void addRuleWithoutOperation() throws InterruptedException {
addRole();
openRolesPage();
Events.click(webDriver, common.containsText(roleDisplayName));
Events.click(webDriver, rolesPage.addRule());
Events.click(webDriver, rolesPage.listAccess());