使用 Xcode 进行 UI 测试:如何找到没有标题的按钮?

Posted

技术标签:

【中文标题】使用 Xcode 进行 UI 测试:如何找到没有标题的按钮?【英文标题】:UI Testing with Xcode: How to find a button that has no title? 【发布时间】:2017-06-04 16:15:36 【问题描述】:

我的用户界面中有一些按钮只显示图像而没有标题。在 UI 测试期间如何访问它们? window.buttons["delete"].click() 由于缺少标题而找不到按钮。而且我无法设置标题,因为图像具有一定的透明度。

【问题讨论】:

【参考方案1】:

您应该设置一个accessibilityIdentifier。这是一个非面向用户的属性,旨在允许您识别 UI 测试中的元素。引入它是为了阻止人们滥用accessibilityLabel,人们以前会在测试中使用它来识别事物,但这会影响 Voiceover 用户的体验,他们在选择元素时会听到 accessibilityLabel 的内容。

// app code
let myButton: UIButton!
myButton.accessibilityIdentifier = "deleteButton"

// test code
let app = XCUIApplication()
let deleteButton = app.buttons["deleteButton"]

【讨论】:

【参考方案2】:

您可以通过accessibilityLabel 找到按钮。所以,首先设置标签:

deleteButton.setAccessibilityLabel("delete")

然后您可以正常访问它:

 untitledWindow.buttons["delete"].click()

【讨论】:

这确实有效;但是,请注意可访问性标签是面向用户的。可访问性标识符更可取,因为它不会影响用户。在代码中设置标识符,如@Oletha's answer 所示,或通过 Interface Builder。但是,如果出于某种原因确实想要(或需要)使用该标签,请确保将其命名为对使用画外音的人来说有意义的名称。

以上是关于使用 Xcode 进行 UI 测试:如何找到没有标题的按钮?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode UI 测试 - 如何在 WebView 中查找和点击()元素

使用登录系统进行 Xcode UI 测试

使用 Material Library 中的 ErrorTextField 进行 Xcode UI 测试

在 Xcode UI 测试中编辑记录的元素

ui测试xcode,如何使用cellquery点击表格视图单元格按钮

Xcode 7 中的特定 UI 测试