簡體   English   中英

如何通過 UI 測試在 iOS13 共享表中找到要共享的應用程序?

[英]How to locate an app to share to in iOS13 share sheet via UI test?

我正在使用 UI 測試來檢查將文件共享到目標應用程序。 為此,我正在使用 多應用程序 UI 測試,如下所示:

  • 共享給定文件時,目標應用程序應處於活動狀態
  • 輔助應用UITestsHelper是一個簡單的基於文檔的應用模板,它在其容器中安裝一個文件,導航到該文件並與目標應用共享該文件

問題是,當共享表打開時,沒有有意義的文本可用於查找將文件共享到目標應用程序的單元格,在這種情況下顯示為“MyApp”。

在此處輸入圖片說明

檢查日志中的 UI 層次結構時,這是相關部分:

ScrollView, {{0.0, 617.0}, {414.0, 132.0}}
  Cell, {{13.0, 617.0}, {78.0, 118.5}}, label: 'AirDrop'
  Cell, {{106.5, 617.0}, {78.0, 118.5}}, label: 'Nachrichten'
  Cell, {{200.0, 617.0}, {78.0, 118.5}}, label: 'Mail'
  Cell, {{293.5, 617.0}, {78.0, 131.5}}, label: 'Aktivität'
  Cell, {{387.0, 617.0}, {78.0, 131.5}}, label: 'Aktivität'

如您所見,系統應用程序和服務,例如 AirDrop、Messages 和 Mail,都有一個有意義的標簽(這里是德語,因為這是系統語言)。 第三方應用程序僅顯示帶有“活動”標簽(德語為 Aktivität)。

我現在盲目地點擊第四個單元格,作為選擇第一個非系統應用程序的一種方式,但我發現這非常脆弱。

有沒有更可靠的方法將文件共享到目標應用程序?

我也發現了這個bug。 我用下一種方法解決它 - 我找到所有這些“活動”單元格( app.cells.matching(identifier: "Activity").allElementsBoundByIndex )並一個接一個點擊它們,直到找到需要的(我通過查看在目標應用程序.state

暫無
暫無

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

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