使用Robot Framework SeleniumLibrary验证文本框内容隐藏
解决Robot Framework获取密码框显示文本的问题
首先得搞明白:SeleniumLibrary的Textfield Should Contain关键字读取的是密码框的value属性,这个属性存的就是你输入的原始文本(比如"asdf"),所以拿不到显示的掩码字符(比如"●●●●")。
要验证密码框的混淆显示效果,可按以下两种思路操作:
方法一:验证掩码数量与输入长度一致
密码框的核心作用是隐藏原始文本,优先确认输入的字符数和显示的掩码数对应:
# 输入测试密码 Input Text password_field asdf # 获取输入文本的长度 ${input_length}= Get Length asdf # 通过JS获取密码框的value长度(与输入长度一致) ${mask_count}= Execute JavaScript return document.querySelector('input[type="password"]').value.length; # 验证数量匹配 Should Be Equal ${mask_count} ${input_length}
方法二:验证掩码字符类型(针对特定浏览器)
如果要确认显示的是●而非其他符号(比如*),可以读取密码框的CSS样式属性(注意不同浏览器属性名有差异):
# WebKit内核浏览器(Chrome、Edge)用这个属性 ${mask_style}= Get Element CSS Value password_field -webkit-text-security # 验证样式为disc(对应●) Should Be Equal ${mask_style} disc # Firefox浏览器可以用这个属性 ${mask_style}= Get Element CSS Value password_field text-security Should Be Equal ${mask_style} disc
另外,也可以先确认密码框的类型是password,这是浏览器启用掩码显示的前提:
${field_type}= Get Element Attribute password_field type Should Be Equal ${field_type} password
内容的提问来源于stack exchange,提问作者remington howell
相关产品推荐
相关产品推荐

