无法访问 nib 文件中的按钮(UI 测试 iOS)
Posted
技术标签:
【中文标题】无法访问 nib 文件中的按钮(UI 测试 iOS)【英文标题】:Cannot access button in nib file (UI Testing iOS) 【发布时间】:2019-03-08 12:12:10 【问题描述】:我正在为我的观点编写一个 UITest 案例。问题是我无法访问 nib 文件视图中的按钮。我也为按钮提供了可访问性标识符,但仍然无法访问它Here is the image
我只想点击那个拒绝按钮,但可访问性标识符对此不起作用。这是我的代码
app.buttons["CancelRequest"].tap()
CancelRequest 是可访问性标识符。我也尝试了下面的代码,因为按钮在容器视图中但没有运气
let ContainerView = app.otherElements["RejectContainerView"]
let RejectButton = ContainerView.buttons.element(boundBy: 0)
RejectButton.tap()
我也尝试记录生成此代码的屏幕
app.buttons["dismiss"].tap()
奇怪的是录制屏幕正在为取消按钮生成相同的代码,并且您可以在我提供的图像中看到取消按钮
【问题讨论】:
"你试过用“拒绝”代替“取消请求” 你的意思是说通过按钮名称访问它。我已经做了兄弟它没有工作测试用例失败 可能是您在其笔尖加载到视图中之前访问按钮。 在点击按钮之前,我会检查笔尖上的静态标签以确保它已加载 好的,那么你可以说Xcode通过运行XCUITests并开始记录UItests来生成语句,Xcode会自动为UITests中的事件生成语句,以及访问元素。 【参考方案1】:它在禁用按钮的可访问性标识符并再次启用后工作。我认为这是一个错误,它是 XCTEST 案例的非常奇怪的行为
我试图用另一个 xib 复制相同的结果,是的,这是 XCTEST 案例中的一个问题,有时您无法访问 xib 按钮,您必须多次禁用和启用可访问性标识符,有时如果这不起作用,那么只需执行这个
sleep(2)
app.buttons["submit"].tap()
在点击按钮之前先进入睡眠,这是苹果推荐的方式,真的很奇怪
【讨论】:
以上是关于无法访问 nib 文件中的按钮(UI 测试 iOS)的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 13 UI 测试中访问 UIActivityViewController 上的按钮会导致崩溃
如何在不“连接”它们的情况下以编程方式访问 NIB 中的 UI 元素?