BasePage.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.provectus.kafka.ui.pages;
  2. import static com.codeborne.selenide.Selenide.$$x;
  3. import static com.codeborne.selenide.Selenide.$x;
  4. import com.codeborne.selenide.Condition;
  5. import com.codeborne.selenide.ElementsCollection;
  6. import com.codeborne.selenide.SelenideElement;
  7. import com.provectus.kafka.ui.utilities.WebUtils;
  8. import lombok.extern.slf4j.Slf4j;
  9. @Slf4j
  10. public abstract class BasePage extends WebUtils {
  11. protected SelenideElement loadingSpinner = $x("//*[contains(text(),'Loading')]");
  12. protected SelenideElement submitBtn = $x("//button[@type='submit']");
  13. protected SelenideElement tableGrid = $x("//table");
  14. protected SelenideElement dotMenuBtn = $x("//button[@aria-label='Dropdown Toggle']");
  15. protected SelenideElement alertHeader = $x("//div[@role='alert']//div[@role='heading']");
  16. protected SelenideElement alertMessage = $x("//div[@role='alert']//div[@role='contentinfo']");
  17. protected SelenideElement confirmBtn = $x("//button[contains(text(),'Confirm')]");
  18. protected ElementsCollection allGridItems = $$x("//tr[@class]");
  19. protected String summaryCellLocator = "//div[contains(text(),'%s')]";
  20. protected String tableElementNameLocator = "//tbody//a[contains(text(),'%s')]";
  21. protected String columnHeaderLocator = "//table//tr/th//div[text()='%s']";
  22. protected void waitUntilSpinnerDisappear() {
  23. log.debug("\nwaitUntilSpinnerDisappear");
  24. loadingSpinner.shouldBe(Condition.disappear);
  25. }
  26. protected void clickSubmitBtn() {
  27. clickByJavaScript(submitBtn);
  28. }
  29. protected SelenideElement getTableElement(String elementName) {
  30. log.debug("\ngetTableElement: {}", elementName);
  31. return $x(String.format(tableElementNameLocator, elementName));
  32. }
  33. protected String getAlertHeader() {
  34. log.debug("\ngetAlertHeader");
  35. String result = alertHeader.shouldBe(Condition.visible).getText();
  36. log.debug("-> {}", result);
  37. return result;
  38. }
  39. protected String getAlertMessage() {
  40. log.debug("\ngetAlertMessage");
  41. String result = alertMessage.shouldBe(Condition.visible).getText();
  42. log.debug("-> {}", result);
  43. return result;
  44. }
  45. protected boolean isAlertVisible(AlertHeader header) {
  46. log.debug("\nisAlertVisible: {}", header.toString());
  47. boolean result = getAlertHeader().equals(header.toString());
  48. log.debug("-> {}", result);
  49. return result;
  50. }
  51. protected boolean isAlertVisible(AlertHeader header, String message) {
  52. log.debug("\nisAlertVisible: {} {}", header, message);
  53. boolean result = isAlertVisible(header) && getAlertMessage().equals(message);
  54. log.debug("-> {}", result);
  55. return result;
  56. }
  57. protected void clickConfirmButton() {
  58. confirmBtn.shouldBe(Condition.enabled).click();
  59. confirmBtn.shouldBe(Condition.disappear);
  60. }
  61. public enum AlertHeader {
  62. SUCCESS("Success"),
  63. VALIDATION_ERROR("Validation Error"),
  64. BAD_REQUEST("400 Bad Request");
  65. private final String value;
  66. AlertHeader(String value) {
  67. this.value = value;
  68. }
  69. public String toString() {
  70. return value;
  71. }
  72. }
  73. }