带有“清除按钮”的 UI 自动化清除文本字段

Posted

技术标签:

【中文标题】带有“清除按钮”的 UI 自动化清除文本字段【英文标题】:UI automation clear textfield with the "Clear button" 【发布时间】:2015-11-06 09:11:02 【问题描述】:

UIAutomation 中有没有一种方法可以点击文本字段的“清除文本”按钮?您可以为其添加一个可访问性标识符,还是已经有一个?

此时我只能点击键盘的删除按钮或将文本字段替换为空字符串。但我希望能够点击文本字段中显示的明文按钮。

已经在this问题的评论中找到了一些东西:

textField.buttons["清除文本"].tap()

但这似乎对我不起作用:“找不到此按钮的匹配项”

【问题讨论】:

你检查过这个吗? jojitsoriano.wordpress.com/2011/06/27/… 我做了,但本文使用的是 UIAElement 对象,而我使用的是 XCUIElement。认为后者是 UI 测试的更新版本。 【参考方案1】:

您需要先点击文本字段,以便按钮可见:

let textField = app.textFields["Fanta"] // or however you're matching it
textField.tap()
textField.buttons["Clear text"].tap()

这对我来说是一个最小的例子。

【讨论】:

【参考方案2】:

试试这个,对你有帮助:

- (void)textFieldDidBeginEditing:(UITextField *)textField

   textField.text = @"";

【讨论】:

感谢您的回答,但我不想改变我的应用程序的行为。我正在执行 UI 测试,因此我想模仿客户的确切行为。 你可以 tapWithOptions(offset:x:textfield.width - 25, y:textfield.height/2) 吗?

以上是关于带有“清除按钮”的 UI 自动化清除文本字段的主要内容,如果未能解决你的问题,请参考以下文章

清除按钮按下swiftui时如何自动上一个文本字段

UITextField在开始编辑时具有“清除”按钮大小

如何使用清除按钮创建文本

如何删除自动完成上的清除按钮并仅显示文本

UITextField 清除按钮调用 didEndEditing 两次

我的问题是当我按下清除按钮时,它只是清除文本字段而不是之前按下的数字的数据