04 APP 自动化- Appium toast 元素定位&列表滑动 - 教程
2025-10-07 21:56 tlnshuju 阅读(0) 评论(0) 收藏 举报文章目录
- 一、toast 元素的定位
- 二、滑屏操作
一、toast 元素的定位
toast 元素就是简易的消息提示框,toast 显示窗口显示的时间有限,一般3秒左右
# -*- coding=utf-8 -*-
from time import sleep
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as Ec
# 设置操作终端的配置参数
desired_caps = dict(
platformName='Android', # 指定操作系统
platformVersion='12',# 指定操作系统版本
automationName='Uiautomator2',# 默认框架
deviceName='127.0.0.1:62001',# 指定设备名称
appPackage='com.tal.kaoyan',# 被操作的应用程序包名
appActivity='com.tal.kaoyan.ui.activity.SplashActivity',# 启动页面
noReset='true',# true--不重置 false--重置
app='F:\Pycharm\AppAuto\kaoyan_v4.5.3.apk' # apk文件所在路径
)
# 发送命令给 appium server
driver = webdriver.Remote('http://127.0.0.1:4723', options=UiAutomator2Options().load_capabilities(desired_caps))
#-------------手机号密码登录----------------
phone_loc = (AppiumBy.ID, 'com.tal.kaoyan:id/loginEmailEdittext')
WebDriverWait(driver, 5).until(Ec.presence_of_element_located(phone_loc))
phone_input = driver.find_element(*phone_loc)
# 清空手机号输入框
phone_input.clear()
# 输入手机号
phone_input.send_keys('15956423841')
password_input = driver.find_element(AppiumBy.ID, 'com.tal.kaoyan:id/rtlLoginLayout')
# 清空密码输入框
# password_input.clear()
# clear()方法无效,可以模拟键盘操作手动删除文本框内容
password_input.click()
driver.press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67).press_keycode(67)
# 输入密码
# password_input.send_keys('121335')
# send_keys() 无效,模拟键盘输入
driver.press_keycode(8).press_keycode(14).press_keycode(14).press_keycode(8).press_keycode(7)
protocol_agree_check = driver.find_element(AppiumBy.ID, 'com.tal.kaoyan:id/loginTreatyCheckboxPassword')
checked = protocol_agree_check.get_attribute("checked")
# 未勾选同意协议,则进行点击同意协议
if checked == 'false':
protocol_agree_check.click()
login_btn = driver.find_element(AppiumBy.ID, 'com.tal.kaoyan:id/loginLoginBtn')
# 点击登录
login_btn.click()
toast_loc = (AppiumBy.XPATH, "//*[contains(@text,'帐号或密码错误')]")
# 显示等待
WebDriverWait(driver, 15,0.01).until(Ec.presence_of_element_located(toast_loc))
toast_text = driver.find_element(*toast_loc).text
print("获取 toast 元素的文本内容:",toast_text)
二、滑屏操作
- 同一个水平位置左滑:
- 开始位置与结束位置的坐标特点:
- Y坐标相同
- x坐标从大到小
- 开始位置与结束位置的坐标特点:
- 同一个水平位置右滑:
- 开始位置与结束位置的坐标特点:
- Y坐标相同
- x坐标从小到大
- 开始位置与结束位置的坐标特点:
- 上滑:
- 开始位置与结束位置的坐标特点:
- X坐标相同
- Y坐标从大到小
- 开始位置与结束位置的坐标特点:
- 下滑:
- 开始位置与结束位置的坐标特点:
- X坐标相同
- Y坐标从小到大
- 开始位置与结束位置的坐标特点:
# -*- coding=utf-8 -*-
from appium import webdriver
from appium.options.android import UiAutomator2Options
# 设置操作终端的配置参数
desired_caps = dict(
platformName='Android', # 指定操作系统
platformVersion='12',# 指定操作系统版本
automationName='Uiautomator2',# 默认框架
deviceName='127.0.0.1:62001',# 指定设备名称
appPackage='com.tal.kaoyan',# 被操作的应用程序包名
appActivity='com.tal.kaoyan.ui.activity.SplashActivity',# 启动页面
noReset='true',# true--不重置 false--重置
app='F:\Pycharm\AppAuto\kaoyan_v4.5.3.apk' # apk文件所在路径
)
# 发送命令给 appium server
driver = webdriver.Remote('http://127.0.0.1:4723', options=UiAutomator2Options().load_capabilities(desired_caps))
#实现滑屏
# 获取整个app屏幕的大小
size = driver.get_window_size()
x = size["width"]
y = size["height"]
# 左滑2次
for i in range(0,2):
driver.swipe(start_x=x*0.9,end_x=x*0.2,start_y=y*0.9,end_y=y*0.9,duration=1000)
print("实现左滑两次")
# 右滑2次
for i in range(0,2):
driver.swipe(start_x=x*0.2,end_x=x*0.9,start_y=y*0.9,end_y=y*0.9,duration=1000)
print("实现右滑两次")
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930895.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
3.模块化与MVVM设计模式
Aquarius开发框架旨在帮助独立开发者和中小型团队,完成iOS App的快速实现与迭代。使用框架开发将给你带来简单、高效、易维护的编程体验。大家好,我是K哥。一名独立开发者,同时也是Swift开发框架【Aquarius】的作者…
2025舒适轮胎厂家、静音轮胎厂家企业品牌权威推荐榜:静音技术与驾乘体验口碑之选
随着汽车工业的快速发展,消费者对轮胎性能的要求日益提高。在众多轮胎性能指标中,舒适性成为越来越多车主关注的重点。舒适轮胎不仅关系到驾乘体验,更直接影响行车安全与车辆性能。优秀的舒适轮胎应当具备卓越的静音…
骗子会利用钓鱼网站做啥顺企网属于什么网站
填空题Linux_____可以理解为运行在_____之上,回避直接操作_____和配置文件的应用程序。在Linux中常见的两种图形环境是_____和______。在Linux中的配置文件为____和_____。在Fedor8.0中可以通过____窗口进行主题设置。在“自定义主题”对话框中可以对“控件”、“颜…
成品网站seowordpress 模板 淘宝客
在特征工程中,将分类特征转换为数字特征的任务称为编码。
有多种方法来处理分类特征,如OneHotEncoding和LabelEncoding,FrequencyEncoding或通过其计数替换分类特征。同样,我们可以使用均值编码(MeanEncoding)。
均值编码
均值…
20251005 耳朵龙字符串
因为*最多只会有10个,所以被它截断成的串也很少。
每个串跑一边kmp得到匹配序列,然后DP即可发现每次扩展一个字符的时候broder的增加是有限的。
我们每次扩展它最大+2,我们默认他+2,然后check,不符合再缩减直到符…
玩转树莓派屏幕之五:自定义LCD屏幕显示
上一章节中已经完成了lvgl适配以及tslib的屏幕校准。自己要展示的内容还没有展示出来,还是使用玩转树莓派屏幕之二:自定义屏幕显示 中直接展示的文字,没有任何渲染。
lvgl中支持很多控件,屏幕展示的内容更加丰富。…
AtCoder ARC207 总结
AtCoder ARC207 总结
B
构造题。观察样例,发现 \(i\) 恰好三步到达 \(n-i\),其他点都是两步到达,这使我们想到 \(n\) 为偶数时的解法:分成 \(\le n/2\) 和 \(>n/2\) 的两部分点,对于其中一部分,我们让一个点恰…
工信部信息备案网站首页wordpress 多站点 合集
目录 前提:list 的基本介绍 一、构造/析构/拷贝/赋值
1、构造函数
2、析构函数
3、拷贝构造函数
4、赋值
二、修改操作
1、push_back
2、insert
3、erase
4、clear
三、list iterator 的使用
1、operator *
2、operator
3、operator -- 4、operator &…
2025.10.7模拟赛
赛时
唐完了
开题,看错T1,以为是可重边,然后推性质,发现假了
看一眼题目,没有可重边,是个红题,唐完了,然后写完1h15min已经过去了
T2想了几种转化,然后脑子不思考了
看到左右<=7,觉得只有部分的顺序会影响…
详细介绍:ZLG ZCANPro,ECU刷新,bug分享
详细介绍:ZLG ZCANPro,ECU刷新,bug分享pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…
万网发布网站建网站需要什么软件
💡💡💡本文改进内容: token mixer被验证能够大幅度提升性能,但典型的token mixer为自注意力机制,推理耗时长,计算代价大,而RIFormers是无需TokenMixer也能达成SOTA性能的极简ViT架构 ,在保证性能的同时足够轻量化。 💡💡💡RIFormerBlock引入到YOLOv9,多个数…
副本(Replica)在Elasticsearch中扮演什么角色? - 详解
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
请问怎么做网站小城镇建设 网站官方
spring共四天
第一天:spring框架的概述以及spring中基于XML的IOC配置
第二天:spring中基于注解的IOC和ioc的案例
第三天:spring中的aop和基于XML以及注解的AOP配置
第四天:spring中的JdbcTemlate以及Spring事务控制
-------------…
瀑布流资源网站模板wordpress新建页面显示数据
一、插入排序 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排…
CentOS7关闭防火墙、Linux开启关闭防火墙 - 详解
CentOS7关闭防火墙、Linux开启关闭防火墙 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …
鱼头seo软件张家界有实力seo优化费用
安装Elasticsearch 7.8.0
官网:Elasticsearch 7.8.0 | Elastic 大家下载所需要的安装包即可。然后解压缩: Elasticsearch是通过java编写的,所以自带jdk。多好,下载Elasticsearch赠送jdk 0.0,不过一般我们用自己的jdk…
OpenStack实验过程
用户与项目管理
创建用户与项目
cd ~
source keystonerc_admin # 应用需要的环境变量,获取权限以便后续操作
openstack project create cec # 创建项目
openstack user create --domain default --password openstack…