管理內容

許多應用程式平台的共同功能是開發人員可以在平台原生應用程式框架內嵌入網路內容。這讓開發人員可以利用網路技術或現有的網路內容來實現應用程式部分或全部功能。不過,在單一應用程式中混合「模式」的額外複雜性可能會讓自動化工具難以針對「原生」元素和行為進行設定。

Appium 提供一組 API 來處理不同的應用程式模式,稱為「內容」,如果 Appium 驅動程式支援這些不同模式中的自動化指令,就可以實作這些內容。Appium 已新增三個基本指令到 W3C WebDriver 規格,以達到此目的

指令名稱 方法/路徑 參數 說明 傳回
取得內容 GET /session/:id/contexts 取得可用內容的清單 array<string>
取得目前內容 GET /session/:id/context 取得目前內容的名稱 字串
設定內容 POST /session/:id/context name (字串) 切換到具有指定 name 的內容 null

這個 API 夠靈活,可以處理驅動程式中各種語義詮釋。例如,XCUITest 驅動程式包含兩種內容:原生應用程式內容和任何目前網頁檢視,每個網頁檢視為一個內容。呼叫 取得內容 會傳回名稱清單,您身為測試作者可以篩選並用來切換到適當的內容。另一個範例是 Appium Altunity 外掛程式 引入了 UNITY 內容的概念,它封裝了外掛程式的特定行為,以確保在 UNITY 內容之外時,會使用目前驅動程式的常規指令實作。

請務必注意,呼叫 取得內容 永遠會包含至少一個內容,慣例上(但並非一定)稱為 NATIVE_APP。這是預設的目前內容。

根據您所處的內容類型,驅動程式的操作可能會有所不同。XCUITest 驅動程式在鎖定網頁檢視內容時,不會執行其尋找和與元素互動的典型例行程序。相反地,它會執行另一組適用於網頁元素的例行程序。這可能會產生各種後果,例如支援不同的定位器策略集。

上表中的指令名稱是對指令的通用參考,而不是程式碼範例。如需瞭解如何在特定語言的用戶端程式庫中存取 Context API 的範例,請參閱特定程式庫的文件。