【问题标题】:How can I test that an <input/> is marked invalid?如何测试 <input/> 是否被标记为无效?
【发布时间】:2018-08-24 14:57:21
【问题描述】:

我有一个 Selenium 套件来测试我的(网络)用户界面,我试图证明当用户输入无效值时会出现相应的错误消息。

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

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

手工操作很简单,但对于我来说,我无法弄清楚如何测试 input:invalid CSS 是否已应用或如何读取/测试工具提示值。

证明该字段被标记为无效可能就足够了,即使我们不测试工具提示的内容,但理想情况下我们会同时测试两者。

【问题讨论】:

  • 如果提供无效数据,您会收到任何警告...
  • “min”属性对你来说可能并不像程序员想要的那样。它可能不是最小值,而是最小长度(以字符为单位)。通常,您应该根据作为测试人员的接受标准进行测试。
  • @Deepan 输入通过 CSS 文件中的“input:invalid{border:2px solid red}”设置样式
  • 尝试获取输入元素,获取element.getCssValue("color"));现在,如果颜色为红色,您可以将其标记为无效数据
  • @InfernalRapture 我的荣幸 :)

标签: java html selenium automated-tests


【解决方案1】:

我能够使用命令测试样式

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

注意: 测试与边框相关的样式必须指定一个边,因为适用于所有四个边的样式是简写的,它被分解为每个边的样式。 border:blue 将被删除并替换为 border-bottom-color:blueborder-top-color:blueborder-right-color:blueborder-left-color:blue

【讨论】:

  • 这个答案基于@Deepan留下的cmets
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
相关资源
最近更新 更多