python 怎样获取toast?

toast是什么?

想要获取toast的小伙伴们,肯定知道这个是一个什么玩意,例行还是加一个图,加以解释,下图的就是传说中的toast,它有一个特点,出现时间特别短,很难通过定位元素去获取这个toast。

不能通过明确的元素定位来获取,那要怎么获取到toast呢?在做app自动化的时候,toast出现率非常高,所以必须要获取到toast,方便后面的断言。那要怎么通过什么方式获取呢?

答案就是:采用Xpath + text 进行定位

python -appium -真机 是怎样工作的?

知道通过什么方式获取之前,我们还需要知道 python  -》appium + 真机或模拟机 是怎样工作的?

需要获取到toast的前提条件:

1.安卓版本要在5.0以上

2.设置  desired_caps[‘automationName‘] = ‘Uiautomator2‘

3.判断toast是否存在:presence_of_element_located(注意不能使用visibility_of_element_located)

检查是否必须的两个文件:

在模拟器或真机会生成两个用来获取toast的文件,检查这两个文件,证明已经生成这两个文件

贴上最后的实现的代码:如果toast出现的时间很短,需要将等待时间的轮询的时间调小

WebDriverWait(driver, 8, 0.2).until(EC.presence_of_element_located((MobileBy.XPATH, ‘//*[contains(@text,"xxxx")]‘)))

最后给大家一个提示:前置条件都设置好了,模拟器或真机也有那两个获取toast的文件了,就要检查写的toast提示信息对不对,一个字都不能错啊,不然找不到的,我就是因为一个文字写错,纠结了好几天都不知道是什么原因,泪奔,终于有人指出了我的问题,改好就找到了。

原文地址:https://www.cnblogs.com/cuitang/p/10165729.html

时间: 2024-07-30 08:14:16

python 怎样获取toast?的相关文章

Python+Appium 获取 toast 方法的封装

获取toast内容方法封装如下: def get_Toast(self,message): #查找toast值 ''' method explain:查找toast的值,与find_Toast实现方法一样,只是不同的2种写法 parameter explain:[text]查找的toast值 Usage: device.get_Toast('再按一次退出iBer') ''' logging.info("查找toast值---'%s'" %(message)) try: message

python appium 封装获取toast方法

获取toast text封装,传入toast 部分文本,返回全部文本 def get_toast_text(self,text): try: toast_loc = (By.XPATH, "//*[contains(@text,'"+text+"')]") logger.info(toast_loc) ele = WebDriverWait(self.driver, 10, 0.1).until(EC.presence_of_element_located(toas

Python脚本获取参数的方式

在运维过程中,常常需要自己写脚本,而python往往是最佳的选择.那么怎么获取python脚本的命令行参数呢,例如: python demo.py a b c 怎么获取命令行参数,a,b,c 呢?可以通过sys库里面的argv来实现, 例如: $ cat demo.py #-*- coding: UTF-8 -*- import os import sys def demo(): print sys.argv print len(sys.argv) for i in range(len(sys.

Python下获取当前目录中的所有子目录

p是输入目录 代码如下 import osdef getDirList(p):  #      b = [];    filepath=p    if filepath=="":        return b    filepath = filepath.replace( "/","\\")    if filepath[ -1] != "\\":        filepath = filepath+"\\&qu

【python】获取51cto博客的文章列表

python的正则与网页操作练习二: import re import urllib.request #51cto urlcode=gb18030 class down51web: s_url='' s_blogid='' s_blogpages='' s_html='' s_code='' def __init__(self,url,code): self.s_url=url self.s_code=code def get_html(self): self.s_html=urllib.req

Python中获取异常(Exception)信息

异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序结构.如下所示 try: ... except Exception as e: ... 1.str(e) 返回字符串类型,只给出异常信息,不包括异常信息的类型,如1/0的异常信息 'integer division or modulo by zero' 2.repr(e) 给出较全的异常信息,包括异

使用python+xpath获取下载链接

使用python+xpath 获取https://pypi.python.org/pypi/lxml/2.3/的下载链接: 使用requests获取html后,分析html中的标签发现所需要的链接在<table class="list" >...</table> 中 然后分别获却<tr class="odd"> 和<tr class="even">中的内容 ,使用xpath时可以写成xpath('/

python脚本——获取系统当前时间与前一天的时间

python脚本中很多时候需要自动获取系统的当前时间和前一日的时间,如果为了获得前一日的时间,只是单纯的取出当前的系统时间(字符串类型),转为整型之后减1,再转换为字符串类型,是不可行的,当月初的时间将会出现0天,比如12月1日会变成12月0日,合理的做法应当让其自动向前推一天. 如下: 1.python里获取当前时间有一个time属性import timeTIME_NOW = time.strftime('%Y%m%d') 或TIME_NOW = time.strftime("%Y%m%d&q

Android获取Toast的String解析

在测试自动化的过程中,有时经常需要获取Toast的String来作检验. 在robotium中,我们知道可以通过solo.getView("message")方法获取Toast的TextView,然后得到其String值,那么其内部是怎么实现的呢. 首先看下我们一般是怎么调用Toast的: Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); 当应用中调用Toa