如何在使用 Xcode 11 & iOS 13 的 UI 测试期间关闭 UIActivityViewController
How to dismiss the UIActivityViewController during a UI test with Xcode 11 & iOS 13
Apple 重新设计了出现的共享 sheet,现在已经破坏了我的 UI 测试。
我试图通过 Xcode 记录一个新的 UI 测试,但是只要我点击关闭按钮,测试就会终止,所以我无法捕获该事件。
最后,我只想知道如何访问下面箭头所示的灰色 'X':
我刚刚用 Xcode 13 测试了这个,发现原来的答案不再有效。但是,我保留它以供后代使用,或者为那些使用 Xcode.
以前版本的人保留
Xcode 13
我已经用 Xcode 13.0 测试过它并验证它适用于 iPhone 和 iPad:
let activityListView = app.otherElements.element(matching: .other,
identifier: "ActivityListView")
XCTAssertTrue(activityListView.waitForExistence(timeout: 2.0))
activityListView.buttons["Close"].tap()
以前的版本
经过反复试验,我能够通过以下内容找到我的特定元素所在的位置:
app.otherElements.element(boundBy: 1).buttons.element(boundBy: 0).tap()
使用 app.otherElements.element(boundBy: 1)
会为我确定份额 sheet。我试图通过可访问性标识符找到它,但我找不到有效的标识符,包括以前在 iOS 12 及以下版本中使用的有效标识符。
Please note that based on the layout of your screen, the index value
may differ from what I am seeing.
接下来,.buttons.element(boundBy: 0).tap()
用于定位关闭 按钮。我再次尝试使用标识符,但找不到任何代表按钮的东西。
当我在测试时尝试通过控制台辨别其他信息时,我总是会导致测试崩溃。这个结果令人惊讶,因为我能够使用 Xcode 10.
查询这些元素
最终,我想找到工作标识符值,这样我就可以拥有跨产品可靠工作的东西,而无需反复试验来找到共享 sheet 的索引值。
对于iPad
以下将关闭 iPad 的弹出窗口:
app.otherElements["PopoverDismissRegion"].tap()
Apple 重新设计了出现的共享 sheet,现在已经破坏了我的 UI 测试。
我试图通过 Xcode 记录一个新的 UI 测试,但是只要我点击关闭按钮,测试就会终止,所以我无法捕获该事件。
最后,我只想知道如何访问下面箭头所示的灰色 'X':
我刚刚用 Xcode 13 测试了这个,发现原来的答案不再有效。但是,我保留它以供后代使用,或者为那些使用 Xcode.
以前版本的人保留Xcode 13
我已经用 Xcode 13.0 测试过它并验证它适用于 iPhone 和 iPad:
let activityListView = app.otherElements.element(matching: .other,
identifier: "ActivityListView")
XCTAssertTrue(activityListView.waitForExistence(timeout: 2.0))
activityListView.buttons["Close"].tap()
以前的版本
经过反复试验,我能够通过以下内容找到我的特定元素所在的位置:app.otherElements.element(boundBy: 1).buttons.element(boundBy: 0).tap()
使用 app.otherElements.element(boundBy: 1)
会为我确定份额 sheet。我试图通过可访问性标识符找到它,但我找不到有效的标识符,包括以前在 iOS 12 及以下版本中使用的有效标识符。
Please note that based on the layout of your screen, the index value may differ from what I am seeing.
接下来,.buttons.element(boundBy: 0).tap()
用于定位关闭 按钮。我再次尝试使用标识符,但找不到任何代表按钮的东西。
当我在测试时尝试通过控制台辨别其他信息时,我总是会导致测试崩溃。这个结果令人惊讶,因为我能够使用 Xcode 10.
查询这些元素最终,我想找到工作标识符值,这样我就可以拥有跨产品可靠工作的东西,而无需反复试验来找到共享 sheet 的索引值。
对于iPad
以下将关闭 iPad 的弹出窗口:
app.otherElements["PopoverDismissRegion"].tap()