我正在为我的iOS Swift应用程序编写UITest案例。在应用程序中,我通过以下方式在导航栏上创建了一个自定义的右键项目按钮:
let barButtonItem = UIBarButtonItem(customView: customView)
navigationItem.rightBarButtonItem = barButtonItem
现在,我不知道如何在XCUITest中访问此自定义的右键项目按钮,确实需要一些帮助。预先感谢。
答案 0 :(得分:2)
您无法访问UIBarButtonItem
,因为它不是真正的UIElement(它不是UIView
子类),但是您可能想访问右侧栏中按钮中的UIButton
无论如何。
有几种方法可以访问该按钮,这有两个想法:
1。查询导航栏中的第一个按钮
let rightNavBarButton = XCUIApplication().navigationBars.children(matching: .button).firstMatch
XCTAssert(rightNavBarButton.exists)
通过这种方式,您可以访问UIButton
中的第一个UINavigationBar
。
这仅在导航栏中只有一个按钮时有效。因此,当您添加另一个按钮时,它将中断。
2。使用可访问性标识符
您可以为右栏按钮项中的按钮定义一个可访问性标识符,并在测试期间使用该标识符来访问它:
在您的应用中:
let barButtonItem = UIBarButtonItem(customView: customView)
barButtonItem.accessibilityIdentifier = "navbarRightItem"
navigationItem.rightBarButtonItem = barButtonItem
在测试中:
let rightNavBarButton = XCUIApplication().navigationBars.buttons["navbarRightItem"]
XCTAssert(rightNavBarButton.exists)
只需确保您使用的是accessibilityIdentifier
,而不是accessibilityLabel
。因为accessibilityLabel
将由VoiceOver为残障用户阅读,并且应包含有用的文本。
答案 1 :(得分:0)
您必须为按钮分配using (IDbConnection conn = factory.CreateConnection()) {
conn.ConnectionString = ConnectionString;
conn.Open();
IDbCommand cmd = conn.CreateCommand();
cmd.CommandText = $"SELECT * from TABLENAME";
var reader = cmd.ExecuteReader();
while (reader.Read()) {
//--do some operation
}
conn.Close();
}
accessibilityIdentifier
如果不起作用,请将barButtonItem.accessibilityIdentifier = “barButtonItemID”
设置为YES / true