У меня есть набор 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, или как читать / тестировать значение всплывающей подсказки.
Вероятно, будет достаточно доказать, что поле помечено как недопустимое, даже если мы не тестируем содержимое всплывающей подсказки, хотя в идеале мы должны протестировать и то, и другое.
Атрибут "min" может не означать для вас то, что задумал программист. Это может быть не минимальное значение, а минимальная длина (в символах). Как правило, вы должны тестировать в соответствии с критериями приемлемости, которые вам как тестировщику дают.
@Deepan Стиль ввода оформлен с помощью "input: invalid {border: 2px solid red}" в файле CSS.
@BillHileman No Min в этом случае применяется численно, но я ценю внимание
Попробуйте получить элемент ввода и получить element.getCssValue ("color")); Теперь, если цвет красный, вы можете пометить его как недопустимые данные
@Deepan Я проверил вашу идею с помощью "color", "border" и "border-color", к сожалению, он не показывает значения ": invalid", он просто показывает стандартный стиль элемента, хотя в браузере я могу четко видят красную границу во время выполнения теста. Я считаю, что это потому, что ": invalid" - это псевдокласс, который ведет себя по-другому, хотя я не совсем понимаю, как это сделать.
@Deepan Интересно, что я попытался изменить класс: invalid, включив в него «background: blue;» и БЫЛ смог проверить это, я думаю, ваша идея может сработать, если я сделаю это правильно, спасибо за вашу помощь.
@InfernalRapture, с удовольствием :)
Возможный дубликат Как проверить текст в сообщении, созданном API проверки ограничений в HTML5?




Мне удалось протестировать стили с помощью команды
element.getCssValue("border-bottom-color");
Примечание:
Тестирование стилей, связанных с границей. должен указывает сторону, поскольку стили, которые применяются ко всем четырем сторонам, являются короткими, которые разбиты на стили для каждой стороны. border:blue будет удален и заменен на border-bottom-color:blue, border-top-color:blue, border-right-color:blue и border-left-color:blue.
Этот ответ основан на комментариях, оставленных @Deepan
Если вы дадите неверные данные, получите ли вы какое-либо предупреждение ...