seldom文档seldom文档
介绍
安装
GitHub
介绍
安装
GitHub
  • 介绍
  • 开始

    • Installation
    • 创建项目
    • 快速开始
    • 高级用法
    • 数据驱动
    • 方法的依赖
    • seldom CLI
  • web UI 测试

    • 浏览器与驱动
    • Seldom API
    • 链式调用
    • Page Object
    • 浏览器启动配置
  • App UI 测试

    • app 测试
    • appium API
    • Page Object
    • appium 扩展
    • ADB 操作
  • HTTP接口测试

    • HTTP测试
    • 接口断言
    • API Object
    • 更多功能
    • 支持Excel测试用例
    • WebSocket
  • 更多能力

    • 数据库操作
    • 支持更多测试库
    • 基准测试
  • 平台化支持
  • 版本更新

Page Object

在编写App自动化测试时,推荐使用page object models(简称 PO设计模式)。你可以看到seldom并没有完全封装appium的API,我们可以借助 poium 来实现基于元素的定位。

github: https://github.com/SeldomQA/poium

pip 安装

> pip install poium

使用poium

在seldom中基于poium实现元素的定位和操作。

import seldom
from seldom.appium_lab.android import UiAutomator2Options
from poium import Page, Element, Elements


class BBSPage(Page):
    search_input = Element(id_="com.meizu.flyme.flymebbs:id/nw")
    search_button = Element(id_="com.meizu.flyme.flymebbs:id/o1")
    search_result = Elements(id_="com.meizu.flyme.flymebbs:id/a29")


class TestBBS(seldom.TestCase):

    def start(self):
        self.bbs_page = BBSPage(self.driver)

    def test_bbs(self):
        self.sleep(5)
        self.bbs_page.search_input.click()
        self.bbs_page.search_input.send_keys("flyme")
        self.bbs_page.search_button.click()
        elems = self.bbs_page.search_result
        for title in elems:
            self.assertIn("flyme", title.text.lower())


if __name__ == '__main__':
    # 定义运行App
    capabilities = {
        "automationName": "UiAutomator2",
        "platformName": "Android",
        "appPackage": "com.meizu.flyme.flymebbs",
        "appActivity": "com.meizu.myplus.ui.splash.SplashActivity",
        "noReset": True,
    }
    options = UiAutomator2Options().load_capabilities(capabilities)
    seldom.main(app_server="http://127.0.0.1:4723", app_info=options, debug=True)

定位方法

poium 支持的定位方法。

# selenium
css = "xx"
id_ = "xx"
name = "xx"
xpath = "xx"
link_text = "xx"
partial_link_text = "xx"
tag = "xx"
class_name = "xx"

# appium
ios_uiautomation = "xx"
ios_predicate = "xx"
ios_class_chain = "xx"
android_uiautomator = "xx"
android_viewtag = "xx"
android_data_matcher = "xx"
android_view_matcher = "xx"
windows_uiautomation = "xx"
accessibility_id = "xx"
image = "xx"
custom = "xx"

Element类参数

  • timeout: 设置超时检查次数,默认为5。
  • index: 设置元素索引,当你的定位方式默认匹配到多个元素时,默认返回第1个,即为0.
  • describe: 设置元素描述,默认为undefined, 建议为每个元素增加描述。
在 GitHub 上编辑此页
Last Updated:
Contributors: defnngj
Prev
appium API
Next
appium 扩展