使用Appium自动化测试app(四)------实战篇2

在这里我会罗列一些常用的方法:

1. 判断某一个元素在不在当前的页面

if 'selement' in driver.page_source:

2. 模拟滚动,获取设备窗口大小(以及其它)

driver = webdriver.Remote(server, desired_caps)
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
driver.swipe(x * 0.5, y * 0.75, x * 0.5, y * 0.25, 500)  # 上滑
driver.swipe(x * 0.5, y * 0.25, x * 0.5, y * 0.75, 500)  # 下滑
driver.swipe(x * 0.75, y * 0.5, x * 0.25, y * 0.5, 500)  # 左滑
driver.swipe(x * 0.25, y * 0.5, x * 0.75, y * 0.5, 500)  # 右滑

#锁定屏幕时间秒
driver.lock(5)

#将APP放置后台 参数时间秒
driver.background_app(5)

#收起键盘
driver.hide_keyboard()

#启动Activity 
driver.start_activity('包名', 'activity名')

#打开通知栏
driver.open_notifications()

#检查应用是否已经安装 参数包名
driver.is_app_installed('xxxxxx')

#安装应用 参数 路径
driver.install_app('path/my.apk')

#删除应用
driver.remove_app('xxxxxx')

#摇晃(Shake)
driver.shake()

#关闭应用
driver.close_app()

#重置(等于卸载后重装)
driver.reset()

#获取应用的字符串
driver.app_strings

#按键事件
driver.keyevent(具体的按键)

#获取当前Activity
driver.current_activity

#长按某一个按钮
TouchAction(driver).long_press(具体的按键).wait(1500).perform()

Appium Python API 其他博主整理的,还不错!

3. 根据uiautomator定位

1. uiautomator text模糊定位

模糊定位故名思义,通过text的部分信息就能够进行定位,我们直接看代码:

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().textContains("请输入手")')

ele.send_keys("123")  

在上面的代码中我们只是将.text()的方法变成了.textContains(),在方法中传入模糊的数据就好。看到这里是否有人思考过一个问题,既然有类似的模糊寻找,那么有没有像正则表达式一样的查找呢?答案是肯定的,看我们下面的方法。

2. textMatches 正则匹配查找

textMatches故名思义就是通过正则的来进行查找定位,他也是通过text的属性来进行正则匹配,我们直接看代码:

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().textMatches("^请输入手.*")')

ele.send_keys("123")  

上面匹配的一些信息可能一些刚做测试的小伙伴不是很了解,这个不要紧,下来可以搜索一下正则表达式教程,稍微了解一下就可以。

3. uiautomator resourceID定位

resourceId定位和appium封装好的id定位是一样的,只是这里将写法变成了uiautomator的写法而已,看下面代码:

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().resourceId("cn.com.open.mooc:id/et_phone_edit")')

ele.send_keys('234')  

通过上面的代码和之前的代码对比大家可能发现其实他们前面都是一样的,只是在定位的时候发生了一些变化,text变换成了resourceID即可,也就是页面对象属性的信息进行变更了,其他方法都是一样。下面其他方法我就不浪费篇幅,只给大家做一个简单的案例展示。

4. resourceIDMatches 定位

通过id进行正则匹配定位

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().resourceIdMatches(".+et_phone_edit")')

ele.send_keys('234')

5.uiautomator className定位

通过调用android uiautomator使用className进行定位

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.EditText")')

ele.send_keys('234') 

6. uiautomator classNameMatches定位

通过className正则匹配进行定位

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().classNameMatches (".*EditText")')

ele.send_keys('234')

转载于>>>>>>

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
作为AI语言模型,我没有亲自进行过测试,但我可以提供一些关于Appium测试APP的一般性建议和一些可能的实验发现。 在使用Appium测试APP时,需要注意以下几点: 1. 环境搭建:Appium测试需要先搭建好测试环境,包括安装Appium和配置相关环境,如Android SDK、Java环境等。在测试之前,需要确保测试设备和测试工具的稳定性。 2. 测试用例设计:测试用例的设计需要覆盖APP的各种功能和场景,以确保测试的全面性和有效性。同时,测试用例的设计也需要考虑到不同的测试环境和测试设备,以保证测试结果的可重复性。 3. 测试执行和结果分析:在进行测试时,需要按照测试用例进行测试,并对测试结果进行实时分析和记录,包括测试用例的执行结果、测试设备的状态和测试工具的反馈等。 在测试手机安全卫士时,可能会发现以下几个问题: 1. 安全性问题:测试发现手机安全卫士的防病毒、防骚扰等功能存在一些问题。例如,有些病毒可能会被漏检,或者骚扰电话无法完全阻止。 2. 性能问题:测试发现手机安全卫士的性能存在一些问题,如启动速度较慢、占用内存较大等。这可能会影响用户的使用体验。 3. 用户体验问题:测试发现手机安全卫士的用户体验存在一些问题,如界面设计较为简单,操作流畅度不够等。这也可能会影响用户的使用体验。 需要注意的是,以上问题可能与测试环境和测试设备有关,因此在测试时需要尽可能保证测试环境的稳定性和测试设备的统一性,以确保测试结果的准确性。 总之,通过Appium测试可以发现APP存在的问题,提升APP的质量和用户体验。同时,在测试过程中需要注意测试用例的设计和环境的稳定性,以确保测试结果的可靠性和准确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

她最爱橘了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值