MainPage.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.provectus.kafka.ui.pages;
  2. import com.codeborne.selenide.Condition;
  3. import com.codeborne.selenide.Selenide;
  4. import com.codeborne.selenide.SelenideElement;
  5. import com.provectus.kafka.ui.extensions.WaitUtils;
  6. import com.provectus.kafka.ui.helpers.TestConfiguration;
  7. import com.provectus.kafka.ui.pages.topic.TopicsList;
  8. import io.qameta.allure.Step;
  9. import lombok.experimental.ExtensionMethod;
  10. import org.openqa.selenium.By;
  11. import static com.codeborne.selenide.Selenide.$;
  12. import static com.codeborne.selenide.Selenide.$x;
  13. @ExtensionMethod({WaitUtils.class})
  14. public class MainPage {
  15. private static final String path = "/";
  16. @Step
  17. public MainPage goTo() {
  18. Selenide.open(TestConfiguration.BASE_WEB_URL + path);
  19. return this;
  20. }
  21. @Step
  22. public MainPage waitUntilScreenReady() {
  23. $(By.xpath("//*[contains(text(),'Loading')]")).shouldBe(Condition.disappear);
  24. $("input[name=switchRoundedDefault]").parent().$("span").shouldBe(Condition.visible);
  25. return this;
  26. }
  27. @Step
  28. public void topicIsVisible(String topicName) {
  29. new TopicsList().isTopicVisible(topicName);
  30. }
  31. @Step
  32. public void topicIsNotVisible(String topicName){
  33. new TopicsList().isTopicNotVisible(topicName);
  34. }
  35. public enum SideMenuOptions {
  36. BROKERS("Brokers"),
  37. TOPICS("Topics"),
  38. CONSUMERS("Consumers"),
  39. SCHEMA_REGISTRY("Schema Registry");
  40. final String value;
  41. SideMenuOptions(String value) {
  42. this.value = value;
  43. }
  44. }
  45. @Step
  46. public MainPage goToSideMenu(String clusterName, SideMenuOptions option) {
  47. SelenideElement clusterElement = $x(String.format("//aside/ul/li[contains(.,'%s')]", clusterName)).shouldBe(Condition.visible);
  48. if (clusterElement.parent().$$x(".//ul").size() == 0) {
  49. clusterElement.click();
  50. }
  51. clusterElement
  52. .parent()
  53. .$x(String.format(".//ul/li[contains(.,'%s')]", option.value))
  54. .click();
  55. return this;
  56. }
  57. }