金鞍玉勒寻芳客,未信我庐别有春。这篇文章主要讲述Appium相关的知识,希望能为你提供帮助。
一、Appium介绍
https://testerhome.com/topics/11318
整个UI自动化实现:定位元素》利用appium提供的API进行流程操作》利用unittest进行断言》利用TesthtmlReport生成测试报告
二、Appium遇到的坑
全的元素定位不到
解决办法:封装swipe方法,滑动屏幕直到找到某元素
def SwipeUntilElementAppear(self,i,ele):
# 获取屏幕宽高:
width = self.driver.get_window_size()[‘width‘]
height = self.driver.get_window_size()[‘height‘]
j=0
while j <
i:
try:
self.driver.find_element_by_xpath(ele).click()
break
except Exception as e:
self.driver.swipe(width / 2, height * 0.5, width / 2, height * 0.1) # 滑动屏幕
time.sleep(2)
j = j+1
6.坑:className不允许使用复合类名做参数
解决办法:
真实环境中元素往往使用复合类名(即多个class用空格分隔),使用className定位时要注意了,className的参数只能是一个class。
例如,打开http://hao.360.cn/,我们要使用className定位这个元素
<
a
class="tab-item news"
data-page="http://sh.qihoo.com/daohang/index1.html";
hidefocus="false"href="https://www.songbingjia.com/android/brother.html#!news">
新闻头条<
/a>
1)执行driver.findElements(by.className("news")),成功定位到元素
2)执行driver.findElements(by.className("tab-item news")),定位失败,报错信息:Compound class names not permitted,意思是不允许使用复合类名称
7.坑:以下html用classname定位不到
文章图片
解决方法:用xpath定位
8.坑:用class定位多个元素时,提示权限问题
解决办法:改用css定位可解决
9.坑:接入HtmlTestRunner,直接点右键运行结束后没有报异常,但就是没有生成测试报告
解决办法:因为点右键运行或点右上角的运行按钮或ctrl+shift+F10都运行的是编译器自带的unittest in xxx.py,所以需要按Alt+shift+F10,选择xxx来运行,这样就是从自己的main入口开始执行
10.坑:appium server和uiautomatorview不能同时打开
11.坑:导入信用卡很慢
解决办法:暂无
12.坑:定位不准,导信用卡 self.driver.find_element_by_xpath("//android.widget.EditText[@text=‘用户名‘]").send_keys("wallisqq") 有时定位到密码框
解决办法:暂无
13.坑:定位输入框,输入文本有时弹键盘,导致定位不到登录
解决办法:暂无
三、报告展示
文章图片
四、思考
【Appium】1.框架的结构做成哪样的比较好?
推荐阅读
- Android开发 - 掌握ConstraintLayout编辑器
- 弹出AlertDialog的时候报You need to use a Theme.AppCompat theme (or descendant) with this activity错误
- Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变
- usb外接声卡怎样用,本文教您笔记本电脑外置声卡
- u盘低级格式化,本文教您如何对U盘进行低格化
- u盘安装系统,本文教您如何用一个U盘去安装所有
- 玩家国度u盘打开,本文教您华硕玩家国度怎样设置
- u盘改系统,本文教您U盘怎样给电脑装win10系统
- usb驱动安装不成功,本文教您usb驱动安装失败的解