版权声明:本文为博主原创文章,转载请带上出处,谢谢。
- 问题描述:在做APP自动化测试的时候,碰到账号登录,注册时,使用clear()方法清空内容,再用sendKeys(“str”),但是在执行测试用例的时候,普通的EditText内容是可以清空的(清空上次测试输入的数据),但是密码EditText就会把光标定位到文本的第一位,追加输入sendKeys(“str”),导致测试时输入的密码为:新输入的密码+之前未清空的密码
2.问题定位:我用的是appium1..4.16 经过重重排查,发现原来是appium的getText()方法上面除了问题,此方法在任何情况下都不会获得输入框的内容的,估自己重新封装了clear(),测试通过~~~~
/**
* 逐字删除编辑框中的文字
* 碰到问题:无论如何都删除不了密码输入框的内容
* 解决方法:不管有没有内容都 都在密码框进行回退按键删除
* @param element
* 文本框架控件
*/
public void clearText(AndroidElement element) {
String text = element.getText();
System.out.println(
"text length is:" + text.length() + ",text is:" + text);
// 跳到最后 新版中sendKeyEvent()已经被删除,用pressKeyCode()取代
// driver.pressKeyCode(KEYCODE_MOVE_END);定位到文本输入框最后
driver.pressKeyCode(KEYCODE_A, META_CTRL_MASK);//文本内容全选
int size = text.length() == 0 ? 50 : text.length();
for (int i = 0; i < size; i++) {
// 循环后退删除
driver.pressKeyCode(BACKSPACE);//删除
}
}