使用 .clear() *JAVA* *ANDROID* 清除文本字段时出现问题

Posted

技术标签:

【中文标题】使用 .clear() *JAVA* *ANDROID* 清除文本字段时出现问题【英文标题】:Trouble clearing text field with .clear() *JAVA* *ANDROID* 【发布时间】:2019-11-19 14:28:54 【问题描述】:

嘿,我正在尝试通过在此处使用这两行来清除我的程序先前发送文本的文本字段:

driver.findElement(By.xpath("//android.widget.EditText[@index='3']")).click();

driver.findElement(By.xpath("//android.widget.EditText[@index='3']")).clear();

但它只清除了需要清除的 5 个字母中的 2 个。我如何使它可以一次清除所有文本?

【问题讨论】:

我过去曾看过与此类似的帖子,并且提供的一种解决方案显然有效,虽然很笨重,但它是发送键退格字符直到该字段为空。 【参考方案1】:

如果clear() 不起作用,您可以使用javascript 执行器清除该字段。

WebElement elementField = driver.findElement(By.xpath("//android.widget.EditText[@index='3']"));

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].value = '';", elementField);

【讨论】:

你自己试过吗?我看到其他帖子说 javascript 仅在 Appium 中可用于“mobile:”命令。 @BillHileman - 是的,它适用于 webapp 或 webview,而不适用于本机应用程序。 由于定位器是用于本地应用程序而不是 web 视图,所以它不会工作。 无论哪种方式,原始发帖人都没有对此答案或我对其原始帖子的其他评论提供任何反馈,显然他已经放弃了自己的问题或解决了问题,同样没有提供任何后续行动。跨度>

以上是关于使用 .clear() *JAVA* *ANDROID* 清除文本字段时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.RuntimeException: Unable to start activity ComponentInfo{XXX}: Error inflating class andro

如何解决这个错误。 com.google.android.gms.tasks.task executors$zza 无法转换为 android.app.activity。我是 Java 和 Andro

java.nio.Buffer 未在运行时加载 clear() 方法

Java ArrayList clear() 函数

java集合类的clear()方法,能立刻把我集合占用的内存给清掉吗

Android开发之自定义对话框