Как я могу проверить, что <input /> помечен как недопустимый?

У меня есть набор Selenium, тестирующий мой (веб) пользовательский интерфейс, и я пытаюсь доказать, что соответствующие сообщения об ошибках появляются, когда пользователь вводит недопустимые значения.

<input id = "inputID" type = "number" min = "1" step = "1" />

WebElement element = webDriver.findElement(By.id("inputID"));
element.click();
element.sendKeys("-2");
element.??????

Это тривиально сделать вручную, но, хоть убей, я не могу понять, как проверить, применяется ли CSS input:invalid, или как читать / тестировать значение всплывающей подсказки.

Вероятно, будет достаточно доказать, что поле помечено как недопустимое, даже если мы не тестируем содержимое всплывающей подсказки, хотя в идеале мы должны протестировать и то, и другое.

Если вы дадите неверные данные, получите ли вы какое-либо предупреждение ...

Deepan 15.03.2018 18:21

Атрибут "min" может не означать для вас то, что задумал программист. Это может быть не минимальное значение, а минимальная длина (в символах). Как правило, вы должны тестировать в соответствии с критериями приемлемости, которые вам как тестировщику дают.

Bill Hileman 15.03.2018 18:25

@Deepan Стиль ввода оформлен с помощью "input: invalid {border: 2px solid red}" в файле CSS.

InfernalRapture 15.03.2018 18:25

@BillHileman No Min в этом случае применяется численно, но я ценю внимание

InfernalRapture 15.03.2018 18:26

Попробуйте получить элемент ввода и получить element.getCssValue ("color")); Теперь, если цвет красный, вы можете пометить его как недопустимые данные

Deepan 15.03.2018 18:32

@Deepan Я проверил вашу идею с помощью "color", "border" и "border-color", к сожалению, он не показывает значения ": invalid", он просто показывает стандартный стиль элемента, хотя в браузере я могу четко видят красную границу во время выполнения теста. Я считаю, что это потому, что ": invalid" - это псевдокласс, который ведет себя по-другому, хотя я не совсем понимаю, как это сделать.

InfernalRapture 15.03.2018 18:39

@Deepan Интересно, что я попытался изменить класс: invalid, включив в него «background: blue;» и БЫЛ смог проверить это, я думаю, ваша идея может сработать, если я сделаю это правильно, спасибо за вашу помощь.

InfernalRapture 15.03.2018 18:46

@InfernalRapture, с удовольствием :)

Deepan 15.03.2018 18:49
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
9
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мне удалось протестировать стили с помощью команды

element.getCssValue("border-bottom-color");

Примечание: Тестирование стилей, связанных с границей. должен указывает сторону, поскольку стили, которые применяются ко всем четырем сторонам, являются короткими, которые разбиты на стили для каждой стороны. border:blue будет удален и заменен на border-bottom-color:blue, border-top-color:blue, border-right-color:blue и border-left-color:blue.

Этот ответ основан на комментариях, оставленных @Deepan

InfernalRapture 15.03.2018 19:39

Другие вопросы по теме