espresso之判断EditText是否为password
来源:互联网 发布:上海电信网络套餐 编辑:程序博客网 时间:2024/06/09 22:28
这一需求可能比较少见 , 但也是常见的 . 往往我们需要验证输入的密码是否屏蔽 , 这时怎么处理呢 ?
匹配是否为"********"
? 先不说是否正确 , 假设不是用 * 作为掩盖 , 而是用别的特殊字符呢? 再逐个匹配吗? 显然不尽现实 , code就是为了一劳永逸 .
这里先说说为什么不能匹配到"*******"
, 因为就算用 * 作为了屏蔽 , 但 Text 的值依然是原来的字符 .
那么说说正确的方式吧 —– 自定义Matcher :
简单来说就是检查密码输入框的输入类型是否为PASSWORD
public static Matcher<View> isPassword(){ return new TypeSafeMatcher<View>() { @Override public void describeTo(Description description) { description.appendText("is password ."); } @Override protected boolean matchesSafely(View view) { if(!(view instanceof EditText)) return false; int inputType = ((EditText) view).getInputType(); return inputType == (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD) || //可预览的密码输入结构 即(129) inputType == InputType.TYPE_NUMBER_VARIATION_PASSWORD || inputType == InputType.TYPE_TEXT_VARIATION_PASSWORD || inputType == InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD || inputType == InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD; } }; }
结合自定义Matcher这篇文章相信不难看懂 . 这里列举了几种常用的密码输入类型 , 值得注意的是129
这一类型 当前的APP 大多采用该类型 ( 输入时可预览 , 可用于显示明文 ) . 在code 中我有直接写明 129
的来源 即 InputType.TYPE_CLASS_TEXT
和 InputType.TYPE_TEXT_VARIATION_PASSWORD
异或的结果 .
如此使用时:
.check(matches(isPassword()))
即可
0 0
- espresso之判断EditText是否为password
- 判断edittext是否为空
- 判断edittext是否为空
- Android判断edittext是否为空
- 如何判断Edittext是否为空
- android判断edittext是否为空
- 怎么判断EditText中是否为空
- 判断Edittext是否为几种空方法
- Android中EditText判断是否为空的简单说明
- EditText判断内容是否为空的方法
- android中判断EditText的内容是否为空
- android判断输入框EditText是否为空
- Edittext判断输入是否为数字(包含小数点)
- edittext判断为空
- android、Java下判断两个String是否相等 、EditText输入是否为空,
- Android之判断时间是否为今天
- IPhone之判断是否为数字
- JS 之 判断JSON是否为空
- Linux根据端口号杀进程
- Android 代码设置TextView 字体颜色--ColorStateList
- Android EditText禁止输入空格和特殊字符
- Android实现倒计时的按钮
- lavavel 增删改查
- espresso之判断EditText是否为password
- Java零基础如何学习?怎么学习?
- 使用idea sbt运行spark程序
- C语言程序小例题累乘累加
- 初学AngularJs路由(七):Ui-router-resolve(预加载)
- HTTP响应头和请求头信息对照
- 【jzoj4860】【分解数】【线性筛法】
- CocoaPods最新更新
- 【C++面向对象】输入输出操作符的重载