App自动化02-元素定位、显示与隐式等待、常见控件交互方法

1、demo案例

  • selenium 版本建议 3.141.0(pip install selenium==3.141.0)
  • appium-python-client 版本建议 1.2.0
    import time
    
    from appium import webdriver
    from appium.webdriver.common.appiumby import AppiumBy
    from appium.webdriver.common.mobileby import MobileBy
    
    
    class TestAppDemo:
    
        def setup(self):
            # 创建一个字典,desirecapability
            # 1、打开API Demo 应用
            caps = {}
            caps["platformName"] = "Android"
            # Android包名和页面名,获取命令如下:
            # mac/linux:adb logcat ActivityManager:I |grep "cmp"
            # windows:adb logcat ActivityManager:I |findstr "cmp"
            caps["appPackage"] = "io.appium.android.apis"
            caps["appActivity"] = ".ApiDemos"
            caps["deviceName"] = "VNX9X19803001101"
            # 保留登录信息不重置
            caps["noReset"] = "true"
            # driver变成self.driver,由局部变量变为实例变量
            self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
            self.driver.implicitly_wait(5)
    
        def test_app(self):
            # 2、点击 OS,进入下个界面
            os_ele = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "OS")
            os_ele.click()
            # 3、点击【Morse Code】
            self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Morse Code").click()
            input_ele = self.driver.find_element(AppiumBy.ID, "io.appium.android.apis:id/text")
            # 4、清空输入框内容
            input_ele.clear()
            # 5、 输入内容【ceshiren.com】
            input_ele.send_keys("ceshiren.com")
            time.sleep(2)
            # 6、返回上一个页面
            self.driver.back()
            # 7、返回上一个页面
            self.driver.back()
            # 8、断言
            assert os_ele.text == "OS"
    
        def teardown(self):
            # 9、关闭应用,退出app
            self.driver.quit()
    
  • 启动应用
  • 方式一:webdriver.remote("url",desirecapability)
  • 方式二:launch_app() 启动应用,热启动,注意是进入到app首页,而不是前一个界面(该方法已废弃) self.driver.launch_app()

2、capability 配置参数解析

官网:Desired Capabilities - Appium

  • 功能:配置 Appium 会话,告诉 Appium 服务器需要自动化的平台的应用程序

  • 形式:键值对的集合,键对应设置的名称,值对应设置的值

  • 主要分为三部分

    • 公共部分、ios 部分、android 部分
  • 公共部分参数配置

newCommandTimeout(默认60s):上一次请求与下一次请求的间隔时间,使用场景:上传大的文件、安装应用超过60s

udid:多台设备时用到,以此来找到运行的设备,用来区分设备的唯一标识

autoGrantPermissions:自动授予权限

noReset:不停止app,不去清除app数据,不卸载app

fullReset:停止app,去清除app数据,卸载app

dontStopAppOnReset:不停止app,在原来的操作步骤上继续执行(方便调试)

  •  Android 部分特有参数配置
  • iOS 独有

3、Session

  • Appium 的客户端和服务端之间进行通信的前提
  • 通过 Desired Capabilities 建立会话

4、android基本知识

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值