我现在在应用程序中有我的登录屏幕.每次在屏幕上启动应用程序时,手机号码都会预先填入旧文本.
我只是想知道我已经尝试过:
WebElement mob = driver.findElement(By.name("Mobile Number"));
mob.clear // Not working
Run Code Online (Sandbox Code Playgroud)
我试过了 :
String Mobile
mob="";
Run Code Online (Sandbox Code Playgroud)
但它仍然无法删除预填充的文本.
我正在尝试使用appium自动化我的Android应用程序,请帮助我.
它绝对没有效率,可以改进,并且可能有更好的方法...但是,使用adb的shell输入键事件代码我简单地称为"dpad right"将光标一直移动到右边.在那里,发送密钥代码"DEL"开始一直删除...所以...两个for循环.这主要用于短文:
public void cleatTextFully(WebElement element) {
int stringLength = element.getText().length();
for (int i = 0; i < stringLength; i++) {
mDriver.sendKeyEvent(22); // "KEYCODE_DPAD_RIGHT"
}
for (int i = 0; i < stringLength; i++) {
mDriver.sendKeyEvent(67); // "KEYCODE_DEL"
}
}
Run Code Online (Sandbox Code Playgroud)
mDriver是AppiumDriver实例.希望这会有所帮助.
我也遇到了麻烦.我发现的一个主要问题是,为了通过按删除键删除该区域,它需要点击该行的末尾.这对我有用:
public void clearTextField(WebElement element) {
double x = element.getLocation().getX() + element.getSize().width - 5;
double y = element.getLocation().getY() + ((double) element.getSize().height / 3);
preciseTap(x, y, 0.1, 1);
while (!element.getText().isEmpty()) {
pressDeleteKey();
}
}
public void preciseTap(double x, double y, double duration, int touchCount) {
JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, Double> tapObject = new HashMap<String, Double>();
tapObject.put("x", x);
tapObject.put("y", y);
tapObject.put("touchCount", (double)touchCount);
tapObject.put("duration", duration);
js.executeScript("mobile: tap", tapObject);
}
public void pressDeleteKey() {
HashMap swipeObject = new HashMap();
swipeObject.put("keycode", 67);
((JavascriptExecutor) driver).executeScript("mobile: keyevent", swipeObject);
}
Run Code Online (Sandbox Code Playgroud)
它比清除它要快得多,但我还没弄清楚如何做到这一点.非常适合双击或点击并按住直到选中所有内容.
在清除之前单击textBox应该使用最新的libs:
WebElement mob = driver.findElement(By.name("Mobile Number"));
mob.click();
mob.clear();
Run Code Online (Sandbox Code Playgroud)
或从样品jUnitTest 这里
WebElement text = driver.findElement(By.xpath("//UIATextField[1]"));
text.sendKeys("12");
text.clear();
Run Code Online (Sandbox Code Playgroud)
我猜
如果文本字段包含任何预先指定的手机号码,请按以下方式操作。
WebElement mob = driver.findElement(By.name("xxxxxxxxxx")); mob.clear();
xxxxxxxxxx:打开应用程序时预先指定的手机号码。
否则使用其他一些定位技术,例如 By.xpath 、 By.id (如果您正在测试 android 和 Selendroid 的功能)等。
| 归档时间: |
|
| 查看次数: |
22580 次 |
| 最近记录: |