为什么Chrome在headed/headless模式下返回的表单验证提示消息不同?
问题原因
这个差异是Chrome旧版Headless架构的固有特性,核心原因如下:
- 你测试用的Chrome 94使用的是旧版Headless模式(Chrome 96之前的默认Headless实现),这套架构和常规带UI的Headed模式是完全独立开发的,两套逻辑各自维护表单验证提示的字符串资源,没有做同步对齐:Headed模式内置的必填项验证提示为
Please fill in this field,而旧Headless模式的同场景提示固定为Please fill out this field。 - 旧Headless模式不需要渲染UI界面,所以相关的本地化字符串、弹窗样式等UI资源都是单独维护的,和Headed模式不共用,自然会出现文本不一致的情况。
修复方案
Chrome从96版本开始推出了新版Headless模式,和常规Headed模式完全共用同一套核心逻辑和资源,这个差异已经被修复。如果你使用96及以上版本的Chrome,使用chrome --headless=new index.html命令启动,两种模式下的验证提示文本就会完全一致。
内容的提问来源于stack exchange,提问作者Sergey Blohin
相关产品推荐
相关产品推荐

