簡體   English   中英

XCUITest 如何關閉日期選擇器彈出框

[英]XCUITest How to dismiss date picker popover

在 iOS 15 中,我的應用程序中有一個使用.compact樣式的日期選擇器,因此它將日期和時間選擇 UI 顯示為彈出框。

我在 UI 測試中找不到關閉彈出框的方法,嘗試了彈出框關閉的建議,例如:

  • app.otherElements["PopoverDismissRegion"] (不存在)
  • app.otherElements["dismiss popup"].tap() (不存在)
  • .windows.element(boundBy: 0).tap() (只是點擊屏幕的中心,這仍然是彈出框,所以沒有任何用處)

花了一些時間四處搜索,尋找可能有用的與日期選擇器無關的答案,但我找到了這個答案,這表明這會起作用:

app.swipeDown(velocity: .fast)

這在 iPhone 模擬器上對我有用,根據答案,它也適用於橫向 iPad,但不適用於縱向。

將答案復制為原始答案不參考日期選擇器,因此更難找到!

令人難以置信的是,點擊“提供的”解雇按鈕不起作用,是嗎?

我通過“強制”點擊另一個我知道在屏幕上的元素(header 文本)解決了這個問題。 如果日期選擇器覆蓋了該元素,這顯然不起作用,但在我的情況下它從來沒有。

extension XCUIElement {

  func forceTap() {
    self.coordinate(withNormalizedOffset: CGVector(dx: 0.0, dy: 0.0)).tap()
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM