# Appium、Python、Robot Framework 之間的關係

---

## ✅ Appium、Python、Robot Framework 之間的關係：

這三者可以整合在一起，是因為：

<table id="bkmrk-%E6%8A%80%E8%A1%93-%E8%A7%92%E8%89%B2-%E8%AA%AA%E6%98%8E-appium-%E6%B8%AC%E8%A9%A6%E5%BC%95%E6%93%8E"><thead><tr><th>技術</th><th>角色</th><th>說明</th></tr></thead><tbody><tr><td>**Appium**</td><td>測試引擎</td><td>提供 WebDriver API，控制手機（Android / iOS）的自動化操作</td></tr><tr><td>**Python**</td><td>實作擴充邏輯的程式語言</td><td>可以寫自己的測試邏輯、自訂關鍵字（如你現在做的）</td></tr><tr><td>**Robot Framework**</td><td>測試框架（高階語法）</td><td>用關鍵字驅動的方式來寫測試案例，支援 Python Library</td></tr></tbody></table>

---

## 🔄 它們如何互動？

```
[Robot Framework]
        |
        | 呼叫
        ↓
[自訂 Python 關鍵字]
        |
        | 呼叫
        ↓
[AppiumLibrary（內部就是 WebDriver）]
        |
        ↓
[Appium Server → 控制手機裝置]

```

---

### 📦 關鍵套件：

<table id="bkmrk-%E5%A5%97%E4%BB%B6%E5%90%8D%E7%A8%B1-%E7%94%A8%E9%80%94-appiumlibrar"><thead><tr><th>套件名稱</th><th>用途</th></tr></thead><tbody><tr><td>`AppiumLibrary`</td><td>Robot Framework 的套件，封裝了 Appium 操作</td></tr><tr><td>`robotframework`</td><td>測試框架本體</td></tr><tr><td>`appium-python-client`</td><td>Python 端 Appium 的驅動（AppiumLibrary 內部使用）</td></tr></tbody></table>

---

## ✅ 典型架構目錄

```
project/
├── tests/
│   └── test_login.robot
├── keywords/
│   └── custom_scroll.py   ← 這是你寫的 Python 關鍵字
├── resources/
│   └── variables.robot
├── requirements.txt

```

---

## ✅ Robot 測試如何叫到 Appium？

```robot
*** Settings ***
Library    AppiumLibrary
Library    keywords/custom_scroll.py

*** Test Cases ***
登入後登出
    Open Application    http://localhost:4723    platformName=iOS    ...
    Scroll To Text And Tap    登出

```

你寫的 `Scroll To Text And Tap` 是一個 Python 關鍵字，會去呼叫 Appium WebDriver 去執行滑動與點擊。

---

## ✅ 重點概念（幫你牢記）

- `Robot Framework` 是控制流程 + 組合測試邏輯。
- `AppiumLibrary` 是控制手機的橋樑（Python 包裝）。
- 你可以寫 Python function，然後 `@keyword` 暴露成 Robot 可以用的「關鍵字」。

---

如果你想我幫你整理一張「整合架構圖」或提供一份「快速入門模板」，我也可以幫你生成。需要嗎？