编写测试 (Python)
Appium Python Client 是 官方的 Python Appium 客户端,可通过 pypi 以 Appium-Python-Client 包名获取。 它继承自 Selenium Python Binding, 因此安装 Appium Python Client 包括 selenium 绑定。
此示例使用 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_apps(self) -> None:
el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Apps"]')
el.click()
if __name__ == '__main__':
unittest.main()
Note
这份指南的范围不包括对 Python 客户端库或此处发生的一切进行完整说明,因此我们暂时不对代码本身进行详细解释。
- 您可能需要特别阅读 Appium [Capabilities](../guides/caps.md)。
- Python Client GitHub 仓库中的 [功能测试代码](https://github.com/appium/python-client/tree/master/test/functional) 应该有助于找到更多工作示例。
- [文档](https://appium.github.io/python-client-sphinx/) 也有助于找到 Appium Python Client 中定义的方法。
Note
示例代码可从 [GitHub Appium 仓库](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/py) 获取。
基本上,此代码执行以下操作:
- 定义一组"Capabilities"(参数)发送到 Appium 服务器,以便 Appium 知道您想要自动化什么。
- 在内置的 Android 设置应用上启动 Appium 会话。
- 查找"Apps"列表项并点击它。
- 暂停片刻纯粹为了视觉效果。
- 结束 Appium 会话。
就是这样! 让我们试试。 在运行测试之前,请确保在另一个终端会话中运行 Appium 服务器,否则您会收到无法连接的错误。 然后,您可以执行脚本:
如果一切顺利,您将看到设置应用打开并导航到"Apps"视图,然后应用再次关闭。
恭喜,您已经开始了 Appium 之旅! 继续阅读一些 后续步骤 以进行探索。