如何捕捉Chrome的表单验证弹窗

3

我正在编写适用于表单验证的 Protractor 测试。

我希望测试当表单中必填字段未设置时,Chrome 将出现验证弹窗。

当字段未设置时,Chrome 会显示 "请填写此字段"。

我想要做如下操作:

submitBtn = element(by.id('submitBtn'));
submitBtn.click();
validationMessage = ???
expect((validationMessage ).getText()).toBe('Please fill out this field');

如何获取?
1个回答

1
你不需要测试Chrome的内部实现。Chrome开发人员会有测试来覆盖弹出窗口的隐藏和显示。
通过找到应该设置“required”属性的元素,并断言它确实被设置,来测试你的表单是否正确编写。
myInput = element(by.id('myInput'));
expect(myInput.getAttribute('required')).toBeDefined();

required属性只有在点击提交后才会出现吗? - glepretre
不,除非您特别有逻辑来拦截表单提交并添加属性。通常情况下,您会在HTML中编写已经包含该属性的代码,例如<input type="text" required>或者在Angular中使用<input type="text" ng-required="...">。在Angular的情况下,您需要测试ng-required属性的存在而不是普通的required属性。 - user2943490
我仍然想知道如何捕获它。我想测试用户体验,包括Chrome消息。我相信一定有办法。 - Saar peer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接