首页 > 解决方案 > 用原生 Javascript 替换 Angular 的 updateValueAndValidity?

问题描述

我正在测试(自动测试,使用 webdriverio 框架)一个 Angular Web 应用程序,它检查时间输入(由两个 HTML 输入字段组成)中的输入,并在输入不正确时添加一点通知。

在此处输入图像描述

不幸的是,如果我使用更改例如分钟输入字段的值

document.querySelector("#minutesInput").value=""

不会出现“格式不正确”通知,因为与通过键盘删除分钟字段中的输入相反,未触发某些事件。

有没有我可以使用 Javascript 调度的事件,以便updateValueAndValidity触发或以某种方式模仿 Angular?即我需要一些可以从浏览器的(Chrome)控制台运行的东西,它会显示“格式不正确”的提示。

标签: javascriptangular

解决方案


document.querySelector("#minutesInput").value=""

没有这样的用户可以在使用鼠标键盘等输入设备的情况下神奇地将值设置为空字符串。

使用 webdriver 在测试期间发生的所有事情都应通过输入设备执行。

WebElement textInputElement = driver.findElement(By.id("minutesInput"));
textInputElement.sendKeys(Keys.ENTER);

如何管理 HTML 页面并不重要。你可能正在测试 Angular、React、Vue 或者根本没有 JavaScript。测试应该纯粹从用户的角度出发。


推荐阅读