开篇语
昨天参与了一个简书日更活动,结果昨天就没更新!都是七夕的锅,工作中的测试也要学会甩锅哦!今天写点app项目中弹出框的处理。以QQ退出登录时的弹出框为示例,演示一下。其他的弹窗框,例如:更新弹出框、活动弹出框,广告弹出框等。
处理弹出框的思路
第一步:判读该弹出框是否在farme内
注意:appium 处理弹出框官方也没有给出方法,不像selenium一样给出了官方处理弹出框的方法
第二步:定位到弹出框之后,定位弹出框内的按键
第三步:根据定位思想进行xml页面中定位元素的选择。
第四步:编写测试代码
结合QQ退出框演示一下
退出登录弹出框
退出弹出框截图.png
实现退出QQ登录的步骤
- 点击账号设置
- 点击设置
- 点击账号切换
- 点击退出账号
- 点击确认退出
执行QQ退出的登录的python代码
from appium import webdriver
from time import sleep
class TestKe(object):
def __init__(self):
self.d = {
"device": "android",
"platformName": "Android",
"platformVersion": "9",
"deviceName": "46HDU19314003325",
"appPackage": "com.tencent.mobileqq",
"appActivity": ".activity.SplashActivity",
"noReset": "true"
}
self.dr = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=self.d)
sleep(2.5)
def logout(self):
# 点击账户设置
self.dr.find_element_by_accessibility_id('帐户及设置').click()
# 点击设置
self.dr.find_element_by_accessibility_id('设置').click()
# 点击账户切换
self.dr.find_element_by_id('com.tencent.mobileqq:id/account_switch').click()
# 点击退出账号
self.dr.find_element_by_id('com.tencent.mobileqq:id/logoutBtn').click()
# 点击确认退出
self.dr.find_element_by_id('com.tencent.mobileqq:id/dialogRightBtn').click()
if __name__ == '__main__':
t = TestKe()
t.logout()
t.close()
获取退出框内的文字
例如获取下图中的文字
登录框的内容.png
使用appium中的text属性
def get_text(self):
# 点击账户设置
self.dr.find_element_by_accessibility_id('帐户及设置').click()
# 点击设置
self.dr.find_element_by_accessibility_id('设置').click()
# 点击账户切换
self.dr.find_element_by_id('com.tencent.mobileqq:id/account_switch').click()
# 点击退出账号
self.dr.find_element_by_id('com.tencent.mobileqq:id/logoutBtn').click()
a = self.dr.find_element_by_id('com.tencent.mobileqq:id/dialogText').text
print(a)
# 点击确认退出
self.dr.find_element_by_id('com.tencent.mobileqq:id/dialogRightBtn').click()
执行输出的结果
pycharm控制台输出.png
小节后语
由于简书钻石小于5000,精心准备的代码操作QQ应用的视频无法上传,感兴趣的可以关注我的个人公众号。
原创公众号.jpeg
网友评论