博客
关于我
10-appium-toast定位
阅读量:340 次
发布时间:2019-03-04

本文共 2259 字,大约阅读时间需要 7 分钟。

前言

toast在Android开发中是一个常用的UI提示组件,通过Appium框架可以进行自动化操作。本文将介绍toast的样式设置以及如何封装定位判断toast的实现方法。

toast样式

toast的样式设置可以通过代码实现,例如背景颜色、字体大小、显示位置等属性。通过配置 toastLayout.xml 文件,可以自定义toast的显示效果。以下是通过代码实现的样式设置示例:
# -*- coding: utf-8 -*-
from appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
desired_capabilities = {
"platformName": "Android",
"deviceName": "127.0.0.1:62001",
"platformVersion": "7.1.2",
"appPackage": "com.jingdong.app.mall",
"appActivity": ".main.MainActivity"
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_capabilities)
driver.implicitly_wait(10)
# 点击同意
driver.find_element_by_id('com.jingdong.app.mall:id/bqd').click()
time.sleep(5)
# 返回
driver.back()
text = '再次返回退出京东'

封装toast定位判断

为了方便定位和判断toast的存在,可以通过编写自定义函数来实现。以下是一个封装定位toast的实现示例:
# -*- coding: utf-8 -*-
from appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def is_toast_exist(driver, text, timeout=30, interval=0.5):
"""
:param driver: 驱动
:param text: toast文案
:param timeout: 超时时长,单位s
:param interval: 刷新间隔时长,单位s
:return: True/False
"""
try:
toast_loc = ("xpath", f".//*[contains(@text,'{text}')]")
WebDriverWait(driver, timeout, interval).until(EC.presence_of_element_located(toast_loc))
return True
except Exception as e:
print(e)
return False
if __name__ == '__main__':
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_capabilities)
driver.implicitly_wait(10)
# 等待Activity
flag = driver.wait_activity('.main.MainActivity', 10)
print(flag)
# 点击同意
driver.find_element_by_id('com.jingdong.app.mall:id/bqd').click()
time.sleep(5)
# 返回
driver.back()
text = '再次返回退出京东'
if is_toast_exist(driver, text):
toast_text = driver.find_element_by_xpath(f"//*[contains(@text,'{text}')]").text
print("toast_text:", toast_text)
else:
print('未定位到toast')

以上代码展示了如何通过Appium框架对toast进行定位和判断操作。通过封装函数的方式,可以更方便地在测试用例中使用,减少代码的复杂度。

转载地址:http://eyle.baihongyu.com/

你可能感兴趣的文章
ng build --aot --prod生成文件报错
查看>>
ng 指令的自定义、使用
查看>>
nghttp3使用指南
查看>>
Nginx
查看>>
nginx + etcd 动态负载均衡实践(三)—— 基于nginx-upsync-module实现
查看>>
nginx + etcd 动态负载均衡实践(二)—— 组件安装
查看>>
nginx + etcd 动态负载均衡实践(四)—— 基于confd实现
查看>>
Nginx + Spring Boot 实现负载均衡
查看>>
Nginx + uWSGI + Flask + Vhost
查看>>
Nginx - Header详解
查看>>
Nginx - 反向代理、负载均衡、动静分离、底层原理(案例实战分析)
查看>>
nginx 1.24.0 安装nginx最新稳定版
查看>>
nginx 301 永久重定向
查看>>
nginx css,js合并插件,淘宝nginx合并js,css插件
查看>>
Nginx gateway集群和动态网关
查看>>
Nginx Location配置总结
查看>>
Nginx log文件写入失败?log文件权限设置问题
查看>>
Nginx Lua install
查看>>
nginx net::ERR_ABORTED 403 (Forbidden)
查看>>
Nginx SSL私有证书自签,且反代80端口
查看>>