javascript - 用原生 Javascript 替换 Angular 的 updateValueAndValidity?
问题描述
我正在测试(自动测试,使用 webdriverio 框架)一个 Angular Web 应用程序,它检查时间输入(由两个 HTML 输入字段组成)中的输入,并在输入不正确时添加一点通知。
不幸的是,如果我使用更改例如分钟输入字段的值
document.querySelector("#minutesInput").value=""
不会出现“格式不正确”通知,因为与通过键盘删除分钟字段中的输入相反,未触发某些事件。
有没有我可以使用 Javascript 调度的事件,以便updateValueAndValidity
触发或以某种方式模仿 Angular?即我需要一些可以从浏览器的(Chrome)控制台运行的东西,它会显示“格式不正确”的提示。
解决方案
document.querySelector("#minutesInput").value=""
没有这样的用户可以在不使用鼠标或键盘等输入设备的情况下神奇地将值设置为空字符串。
使用 webdriver 在测试期间发生的所有事情都应通过输入设备执行。
WebElement textInputElement = driver.findElement(By.id("minutesInput"));
textInputElement.sendKeys(Keys.ENTER);
如何管理 HTML 页面并不重要。你可能正在测试 Angular、React、Vue 或者根本没有 JavaScript。测试应该纯粹从用户的角度出发。
推荐阅读
- c++ - 无法在 Meson 构建中使用 C++ `std::filesystem` 库
- ssl - 如何使用 rtps_discovery 发现其他域名主机
- neo4j - 在 Neo4J 中执行 GraphQL 查询时出错
- asp.net-ajax - IIS 服务器上的 ashx 和 ajax 文件问题
- php - 如何将 wordpress 设置为主域,将 laravel 设置为子域?
- java - 如何在没有转义序列的 JSON 对象中写入文件路径列表
- python - 将熊猫数据框的第一行转换为列名
- angular - 如何在 Angular 6 中使用 google transstate 和货币对话 api?
- php - 使用多个“IF 语句”是否正确?
- python-3.x - 张量 - 张量的箱线图