diff --git a/jdi-light-vuetify-tests/src/main/java/io/github/com/pages/ComboboxPage.java b/jdi-light-vuetify-tests/src/main/java/io/github/com/pages/ComboboxPage.java index b07888ca51..1bd9d48ffd 100644 --- a/jdi-light-vuetify-tests/src/main/java/io/github/com/pages/ComboboxPage.java +++ b/jdi-light-vuetify-tests/src/main/java/io/github/com/pages/ComboboxPage.java @@ -5,6 +5,7 @@ import io.github.com.custom.AdvancedCombobox; public class ComboboxPage extends VuetifyPage { + // @todo #5463 Check if JDICombobox annotation, now the root value is not correct @JDICombobox( root = "#AutofocusCombobox div[role ='combobox']", listItems = "//ancestor::div[@id = 'app']//div[contains(@class, 'v-autocomplete__content')]//div[@class='v-list-item__title']") @@ -99,7 +100,7 @@ public class ComboboxPage extends VuetifyPage { "//div[@class='v-list-item__title']") public static Combobox hideDetailsCombobox1; @JDICombobox( - root = "#HideDetailsCombobox .col-6:nth-child(6) [role='combobox']", + root = "#HideDetailsCombobox .col-6:nth-child(6) .v-select", listItems = "//ancestor::div[@id = 'app']//div[contains(@class, 'v-autocomplete__content')]" + "//div[@class='v-list-item__title']") public static Combobox errorMessageCombobox; diff --git a/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/elements/complex/Combobox.java b/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/elements/complex/Combobox.java index ba60e3ed21..b0ceafb48e 100644 --- a/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/elements/complex/Combobox.java +++ b/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/elements/complex/Combobox.java @@ -44,7 +44,10 @@ /** * To see example of Combobox web element please visit https://v2.vuetifyjs.com/en/components/combobox/ */ - +// @todo #5463 Refactor element, root element is element with class v-autocomplete +// According to the docs The v-combobox component is a v-autocomplete that +// allows the user to enter values that do not exist within the provided items. +// May be it should inherit from autocomplete public class Combobox extends UIBaseElement implements ISetup, IsClearable, IsMultiple, IsReverse, IsSingleLine, IsFilled, IsLoading, IsReadOnly, HasMessages, IsDense, IsOutlined, IsSolo, IsFullWidth, HasColor, HasTheme, IsFlat, HasMeasurement, HasRounded, IsShaped, HasDetailsHidden, IsVuetifyInput { @@ -56,7 +59,6 @@ public class Combobox extends UIBaseElement implements ISetup, I protected String inputLocator = "div input[type='text']"; protected String expandLocator = "div .v-input__append-inner"; protected String labelLocator = ".v-label"; - protected String messageLocator = "//following::div[@class = 'v-messages__message']"; protected String counterLocator = "//following::div[contains(@class, 'v-counter')]"; protected String errorMessageLocator = "//following::div[contains(@class, 'error--text')]" + "//div[@class = 'v-messages__message']"; @@ -130,17 +132,6 @@ public Label label() { return new Label().setCore(Label.class, core().find(labelLocator)); } - @Override - public List messages() { - return messages(messageLocator); - } - - @Override - @JDIAction("Get '{name}' messages text") - public List messagesText() { - return messagesText(messageLocator); - } - @Override @JDIAction("Get '{name}' error messages") public List errorMessagesText() { diff --git a/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/elements/complex/TextField.java b/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/elements/complex/TextField.java index 5dc32d0dc5..d2fe2311be 100644 --- a/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/elements/complex/TextField.java +++ b/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/elements/complex/TextField.java @@ -46,6 +46,7 @@ public class TextField extends UIBaseElement implements HasLabel, HasPlaceholder, IsInput, HasClick, HasColor, HasIcon, HasMeasurement, HasMessages, HasRounded, HasTheme, IsClearable, IsDense, IsFilled, IsFlat, IsLoading, IsOutlined, IsReadOnly, IsReverse, IsShaped, IsSingleLine, IsSolo, IsFullWidth, HasDetailsHidden { + private static final String DISABLED_CLASS = "v-input--is-disabled"; private static final String FOCUSED_CLASS = "v-input--is-focused"; @@ -59,7 +60,6 @@ public class TextField extends UIBaseElement private String prefixLocator = ".v-text-field__prefix"; private String suffixLocator = ".v-text-field__suffix"; private String detailsLocator = ".v-text-field__details"; - private String messageLocator = ".v-messages__message"; private String loaderLocator = "div [role='progressbar']"; public TextField() { @@ -100,17 +100,6 @@ public UIElement slot() { return core().find(slotLocator); } - /** Get the message element of the TextField. - * - * @return message as {@link UIElement} - */ - @Override - @JDIAction("Get '{name}' message") - public List messages() { - return details().finds(messageLocator); - } - - // @todo #5320 Check this method, not clear why should we have external locator @Override @JDIAction("Get '{name}' messages text by locator '{0}'") public List messagesText(String locator) { @@ -313,6 +302,11 @@ public ProgressLinear loader() { return new ProgressLinear().setCore(ProgressLinear.class, core().find(loaderLocator)); } + @Override + public void click() { + core().find(inputLocator).click(); + } + @Override public TextFieldAssert is() { return new TextFieldAssert().set(this); diff --git a/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/interfaces/HasMessages.java b/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/interfaces/HasMessages.java index 6f5068caf3..e6eb367cba 100644 --- a/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/interfaces/HasMessages.java +++ b/jdi-light-vuetify/src/main/java/com/epam/jdi/light/vuetify/interfaces/HasMessages.java @@ -66,7 +66,7 @@ default int messagesCount() { */ @JDIAction("Check that '{name}' has error messages") default boolean hasErrorMessages() { - return errorMessagesCount() > 0; + return !errorMessagesText().isEmpty(); } /** @@ -96,7 +96,7 @@ default int errorMessagesCount() { */ @JDIAction("Check that '{name}' has success messages") default boolean hasSuccessMessages() { - return successMessagesCount() > 0; + return !successMessagesText().isEmpty(); } /**