编写测试 (Python)

The Appium Python Client is an official Appium client in Python, which is available via pypi under the Appium-Python-Client package name. It inherits from the Selenium Python Binding, so installing the Appium Python Client includes the selenium binding.

pip install Appium-Python-Client

此示例使用 Python 的内置 unittest 模块,但您可以使用任何您想要的 Python 测试框架。Appium Python 客户端会自动添加 appium: 供应商前缀。您通常不需要担心前缀。

test.py
import unittest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy

capabilities = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='Android',
    appPackage='com.android.settings',
    appActivity='.Settings',
    language='en',
    locale='US'
)

appium_server_url = 'http://localhost:4723'

class TestAppium(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Remote(appium_server_url, options=UiAutomator2Options().load_capabilities(capabilities))

    def tearDown(self) -> None:
        if self.driver:
            self.driver.quit()

    def test_find_battery(self) -> None:
        el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Battery"]')
        el.click()

if __name__ == '__main__':
    unittest.main()

注意

本指南的范围不包括对 Python 客户端库或此处发生的所有事情进行完整概述,因此我们将暂时不详细解释代码本身。

注意

示例代码可从 GitHub Appium 存储库 获取。

基本上,这段代码正在执行以下操作

  1. 定义一组要发送到 Appium 服务器的“功能”(参数),以便 Appium 知道您想要自动化什么。
  2. 在内置的 Android 设置应用程序上启动 Appium 会话。
  3. 找到“电池”列表项并单击它。
  4. 暂停片刻,纯粹是为了视觉效果。
  5. 结束 Appium 会话。

就是这样!让我们试一试。在运行测试之前,请确保您在另一个终端会话中运行了 Appium 服务器,否则您将收到无法连接到服务器的错误。然后,您可以执行脚本

python test.py

如果一切顺利,您将看到设置应用程序打开并导航到“电池”视图,然后应用程序再次关闭。

恭喜,您已经开始了 Appium 之旅!继续阅读以了解一些 下一步 以便探索。