WebUtils.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package com.provectus.kafka.ui.utilities;
  2. import static com.codeborne.selenide.Selenide.executeJavaScript;
  3. import com.codeborne.selenide.Condition;
  4. import com.codeborne.selenide.SelenideElement;
  5. import com.codeborne.selenide.WebDriverRunner;
  6. import java.time.Duration;
  7. import lombok.extern.slf4j.Slf4j;
  8. import org.openqa.selenium.Keys;
  9. import org.openqa.selenium.interactions.Actions;
  10. @Slf4j
  11. public class WebUtils {
  12. public static int getTimeout(int... timeoutInSeconds) {
  13. return (timeoutInSeconds != null && timeoutInSeconds.length > 0) ? timeoutInSeconds[0] : 4;
  14. }
  15. public static void sendKeysAfterClear(SelenideElement element, String keys) {
  16. log.debug("\nsendKeysAfterClear: {} \nsend keys '{}'", element.getSearchCriteria(), keys);
  17. element.shouldBe(Condition.enabled).clear();
  18. if (keys != null) {
  19. element.sendKeys(keys);
  20. }
  21. }
  22. public static void clickByActions(SelenideElement element) {
  23. log.debug("\nclickByActions: {}", element.getSearchCriteria());
  24. element.shouldBe(Condition.enabled);
  25. new Actions(WebDriverRunner.getWebDriver())
  26. .moveToElement(element)
  27. .click(element)
  28. .perform();
  29. }
  30. public static void sendKeysByActions(SelenideElement element, String keys) {
  31. log.debug("\nsendKeysByActions: {} \nsend keys '{}'", element.getSearchCriteria(), keys);
  32. element.shouldBe(Condition.enabled);
  33. new Actions(WebDriverRunner.getWebDriver())
  34. .moveToElement(element)
  35. .sendKeys(element, keys)
  36. .perform();
  37. }
  38. public static void clickByJavaScript(SelenideElement element) {
  39. log.debug("\nclickByJavaScript: {}", element.getSearchCriteria());
  40. element.shouldBe(Condition.enabled);
  41. String script = "arguments[0].click();";
  42. executeJavaScript(script, element);
  43. }
  44. public static void clearByKeyboard(SelenideElement field) {
  45. log.debug("\nclearByKeyboard: {}", field.getSearchCriteria());
  46. field.shouldBe(Condition.enabled).sendKeys(Keys.END);
  47. field.sendKeys(Keys.chord(Keys.CONTROL + "a"), Keys.DELETE);
  48. }
  49. public static boolean isVisible(SelenideElement element, int... timeoutInSeconds) {
  50. log.debug("\nisVisible: {}", element.getSearchCriteria());
  51. boolean isVisible = false;
  52. try {
  53. element.shouldBe(Condition.visible,
  54. Duration.ofSeconds(getTimeout(timeoutInSeconds)));
  55. isVisible = true;
  56. } catch (Throwable e) {
  57. log.debug("{} is not visible", element.getSearchCriteria());
  58. }
  59. return isVisible;
  60. }
  61. public static boolean isEnabled(SelenideElement element, int... timeoutInSeconds) {
  62. log.debug("\nisEnabled: {}", element.getSearchCriteria());
  63. boolean isEnabled = false;
  64. try {
  65. element.shouldBe(Condition.enabled,
  66. Duration.ofSeconds(getTimeout(timeoutInSeconds)));
  67. isEnabled = true;
  68. } catch (Throwable e) {
  69. log.debug("{} is not enabled", element.getSearchCriteria());
  70. }
  71. return isEnabled;
  72. }
  73. public static boolean isSelected(SelenideElement element, int... timeoutInSeconds) {
  74. log.debug("\nisSelected: {}", element.getSearchCriteria());
  75. boolean isSelected = false;
  76. try {
  77. element.shouldBe(Condition.selected,
  78. Duration.ofSeconds(getTimeout(timeoutInSeconds)));
  79. isSelected = true;
  80. } catch (Throwable e) {
  81. log.debug("{} is not selected", element.getSearchCriteria());
  82. }
  83. return isSelected;
  84. }
  85. public static boolean selectElement(SelenideElement element, boolean select) {
  86. if (select) {
  87. if (!element.isSelected()) {
  88. clickByJavaScript(element);
  89. }
  90. } else {
  91. if (element.isSelected()) {
  92. clickByJavaScript(element);
  93. }
  94. }
  95. return true;
  96. }
  97. }