如何用Robot Framework/Selenium2Library向HTML表单输入datetime并避免重置
解决datetime-local输入框输入后重置的问题
在使用Robot Framework测试时,通过Press Keys关键字向datetime-local类型的输入框输入240120310959后,输入内容会被重置无法保留。核心原因是**datetime-local输入框有严格的格式规范**,直接输入纯数字不符合浏览器预期的格式,导致浏览器自动清空无效值。
解决方案
方案一:通过JavaScript直接设置输入框值(最可靠)
直接调用JavaScript修改输入框的value属性,赋值符合YYYY-MM-DDTHH:MM格式的字符串,绕过模拟按键的格式问题:
*** Settings *** Documentation Ptest Library Selenium2Library *** Test Cases *** Select a date from datetime-local input Open Browser http://127.0.0.1:5500/pb.html Chrome Wait Until Element Is Visible id:party # 赋值符合格式的日期时间:2024年1月31日 09:59 Execute JavaScript document.getElementById('party').value = '2024-01-31T09:59'
方案二:使用Press Keys输入规范格式内容
如果坚持使用模拟按键输入,需要输入符合YYYY-MM-DDTHH:MM格式的字符串,确保浏览器识别为有效值:
*** Settings *** Documentation Ptest Library Selenium2Library *** Test Cases *** Select a date from datetime-local input Open Browser http://127.0.0.1:5500/pb.html Chrome Wait Until Element Is Visible id:party # 点击激活输入框后,输入规范格式的内容 Click Element id:party Press Keys id:party 2024-01-31T09:59
关键说明
datetime-local类型的输入框对格式有强制要求,仅接受YYYY-MM-DDTHH:MM格式的字符串(比如2024-01-31T09:59)。之前输入的240120310959属于无格式的纯数字,浏览器会判定为无效输入,因此自动重置清空内容。
内容的提问来源于stack exchange,提问作者Yoseph_Reyes
相关产品推荐
相关产品推荐

