app自动化测试——特殊控件Toast
创始人
2025-05-31 11:11:21
0

在这里插入图片描述


文章目录

  • 一、Toast弹窗是什么
  • 二、Toast 定位
    • 方式一:
    • 方式二
  • 三、案例
    • 1、特别注意

一、Toast弹窗是什么

一种消息框类型
无法被点击
Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消失
是系统级别的控件,属于系统settings
Toast类的思想:
就是尽可能不引人注意,同时还向用户显示信息,希望他们看到

二、Toast 定位

appium使用uiautomator底层的机制来分析抓取toast,并且把toast放到控件树里面,但本身并不属于控件。
automationName: uiautomator2
getPageSource是无法找到的
必须使用xpath查找

方式一:

self.driver.find_element(AppiumBy.XPATH,"//*[contains(@text,'popup menu')]")

方式二

self.driver.find_element(AppiumBy.XPATH,"//android.widget.Toast[@class='android.widget.Toast']")

三、案例

toast弹窗如下
在这里插入图片描述

使用uiautomatorviewer进行定位

在这里插入图片描述
自动打开UI Automator Viewer界面

在这里插入图片描述

caps["automationName"]='uiautomator2' #todo 安卓工作引擎

import time
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
class TestXueqiu:def setup(self):caps = {}caps["platformName"] = "Android"caps["deviceName"] = "127.0.0.1:7555 device"caps["appPackage"] = "io.appium.android.apis"caps["appActivity"] = "io.appium.android.apis.view.PopupMenu1"caps["noReset"] = "true"caps["ensureWebviewsHavePages"] = Truecaps["automationName"]='uiautomator2'   #todo 安卓工作引擎self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)self.driver.implicitly_wait(8)def teardown(self):self.driver.quit()def test_toast(self):self.driver.find_element(AppiumBy.ACCESSIBILITY_ID,"Make a Popup!").click()self.driver.find_element(AppiumBy.ID,"android:id/title").click()print(self.driver.page_source)#todo xpath#text=self.driver.find_element(AppiumBy.XPATH,"//android.widget.Toast[@class='android.widget.Toast']").text#print(text)#todo texttext=self.driver.find_element(AppiumBy.XPATH,"//*[contains(@text,'popup menu')]").textprint(text)

1、特别注意

如果不想让脚本从头开始执行脚本,忽略之前的点击操作,直接进入目标页面,
可以获取当前页面的appActivity
使用命令行:adb shell dumpsys window | grep mCurrent获取

相关内容

热门资讯

C++笔记——第七篇 stac... 目录 一、stack 1.介绍 2.使用  二、queue 1.介绍 2.使用 三、priority...
Java多线程之Executo... 文章目录1 ExecutorCompletionService1.1 简介1.2 原理1.3 Dem...
2023跨境市场洞察:金矿在哪... 就全球市场而言,跨境电商的高速增长时代已成过去时,但就意味电商金矿被挖空...
Scala中Array常用的方...         在scala中,Array有大量的方法。定义一个数组arr后ÿ...
C++基础学习笔记(四)——核... 参考链接:https://www.bilibili.com/video/BV1et41...
超详细-安装vCenterv ... 目录 介绍: 第一阶段安装: 第二阶段安装: 最近在玩虚拟...
第14届蓝桥杯STEMA测评真... [导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,...
ChatGPT助力校招----... 1 ChatGPT每日一题:简述SPI通信协议 问题:简述SPI通信协议...
新版PMP考试难不难? 1.新版考试题量和答题时间的变化? 总题量从200道减少到180道,所以...
HBase客户端、服务器端、列... HBase客户端、服务器端、列簇设计、HDFS相关优化,HBase写性能优化切入点&#...
linux 全局环境变量删除后... linux 全局环境变量删除后 还有 仍然存在1、编辑 /etc/profile2、设置REDISC...
网站流量飙升背后:外贸企业谷歌... 自从我涉足外贸行业,我逐渐认识到谷歌SEO优化在提升网站流量和吸引潜在客户方面的重要性...
一、trino406系列 之 ... 文章目录前言Trino不是什么?Trino是什么?概览服务类型Coord...
基于Java+SpringBo...  博主介绍:专注于Java技术领域和毕业项目实战 🍅文末获取源码联系&...
财经时评|破除“内卷式”竞争 ... 作者 中国汽车工程学会理事长张进华“十四五”以来,我国智能网联新能源汽车产业坚持以科技创新引领和推动...
二十六、对象的实例化内存布局与... 一、对象的实例化 1.判断对象对用的类是否加载、链接、初始化。 2.为对象分配内存。 3.处理并发...
C语言简单工厂模式和工程创建 一,设计模式概念引入① 什么是设计模式设计模式通常被面向对象的软件开发人员所采用&#x...
新势力车企5月销量:零跑汽车再... 红星资本局6月1日消息,今日,新势力车企陆续公布5月销量数据。零跑汽车(09863.HK)再创历史新...
150.网络安全渗透测试—[C... 我认为,无论是学习安全还是从事安全的人多多少少都会有些许的情怀和使命感!...
微服务注册中心做了什么事——服... 是否被一大堆的注册中心八股文淹没,不知道哪个是哪个,有啥区别甚至于不知道...