Python+Appium 查找 toast 方法的封装

使用场景:在操作应用时常见toast弹框,通过toast弹框信息的获取判断当前的某个操作是否成功

引用的包:from selenium.webdriver.support import expected_conditions as EC,\expected_conditions

      from selenium.webdriver.common.by import By
      from selenium.webdriver.support.ui import WebDriverWait

截图如下,查找如下截图中的toast内容,判断给出的值是否与实际toast的值是否相等,相等则正常执行,不相等直接走except异常内容,如下:

  

第一种封装方法:

from selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC,\    expected_conditions

def find_Toast2(self,message):  #查找toast值
        ‘‘‘
        method explain:查找toast的值,与find_Toast实现方法一样,只是不同的2种写法
        parameter explain:【text】查找的toast值
        Usage:
            device.find_Toast2(‘再按一次退出iBer‘)
        ‘‘‘
        logging.info("查找toast值---‘%s‘" %(message))
        try:
            message = ‘//*[@text=\‘{}\‘]‘.format(message)
            WebDriverWait(self.driver,5,0.5).until(expected_conditions.presence_of_element_located((By.XPATH,message)))
            logging.info("查找到toast----%s"%message)
            return True
        except:
            logging.info("未查找到toast----%s"%message)
            return False

第二种封装方法如下:

def find_Toast(self,message,timeout=5,poll_frequency = 0.5):  #查找toast值
        ‘‘‘
        method explain:查找toast的值
        parameter explain:【text】给定的toast值
        Usage:
            device.find_Toast(‘再按一次退出iBer‘)
        ‘‘‘
        logging.info("获取toast值---‘%s‘" %message)
        try:
            toast_loc = ("xpath",".//*[contains(@text,‘%s‘)]" %message)
            WebDriverWait(self.driver,timeout,poll_frequency).until(EC.presence_of_element_located(toast_loc))
            logging.info("查找到toast--‘%s‘"%message)
            return True
        except:
            logging.info("未查找到toast--‘%s‘"%message)
            return False

 说明:

  获取toast的方法封装点击链接:http://www.cnblogs.com/syw20170419/p/8280115.html

原文地址:https://www.cnblogs.com/syw20170419/p/8280100.html

时间: 2024-11-04 19:02:47

Python+Appium 查找 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

使用webdriverwait封装查找元素方法

对于selenium原生的查找元素方法进行封装,在timeout规定时间内循环查找页面上有没有某个元素 这样封装的好处: 1.可以有效提高查找元素的小吕,避免元素还没加载完就抛异常 2.相对于time.sleep和implictly_wait更节省时间 3.大大的减少重复代码,使得用例书写更简洁 代码: #coding:utf-8 #封装元素方法from selenium import webdriverfrom selenium.webdriver.support.ui import WebD

python基础之继承实现原理、子类调用父类的方法、封装

继承实现原理 python中的类可以同时继承多个父类,继承的顺序有两种:深度优先和广度优先. 一般来讲,经典类在多继承的情况下会按照深度优先的方式查找,新式类会按照广度优先的方式查找 示例解析: 没有共同头部父类的类型 1 class E: 2 def test(self): 3 print('from E') 4 # pass 5 class F: 6 def test(self): 7 print('from F') 8 # pass 9 10 class C: 11 def test(se

继承实现的原理、子类中调用父类的方法、封装

一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--->A--->E--->B--->C. class E: def test(self): print('from E') class A(E): def test(self): print('from A') class B: def test(self): print('from B'

Day17:继承实现的原理、子类中调用父类的方法、封装

一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--->A--->E--->B--->C. class E: def test(self): print('from E') class A(E): def test(self): print('from A') class B: def test(self): print('from B'

python属性查找

python中执行obj.attr时,将调用特殊方法obj.__getattribute__('attr'),该方法执行搜索来查找该属性,通常涉及检查特性.查找实例字典.查找类字典以及搜索基类.如果搜索过程失败,最终会尝试调用类的__getattr__()方法.如果这也失败,则抛出AttributeError异常. 具体步骤如下: 1.如果attr是个特殊属性(例如python提供的),直接返回. 2.在obj.__class__.__dict__即类字典中查找attr,如果attr是个data

Python+selenium自动化公共逻辑步骤封装

开篇 个人博客"Python+selenium的GUI自动化实现"提到的chrome与IE浏览器调用插件已上传至51CTO下载,对应链接分别为:chrome,http://down.51cto.com/data/2171584:IE,http://down.51cto.com/data/2171585:有需要的直接下载即可:  正文 关于自动化,其实质就是用机器操作代替手工执行,从而减少人力投入.节约项目运营成功.优秀的自动化框架,可能的一个发展过程,前期自动化用例写作实现过程,可能需

python制作查找单词翻译的脚本

本人由于英语渣,在linux底下经常看文档,但是有没有想有道词典这种软件,所以遇到不懂的单词只能手动复制粘贴在网上查找,这样就很不方便,学了python之后,就试着自己尝试下个在命令行下查找单词翻译的脚本. 在我眼里,实现上面这个要求的脚本语言分几块完成: 一是选好一个单词翻译的网站,优先选择GET方法的(代码写起来比较方便),如果是POST方法也不是没有办法,只是要自己新建一个POST请求,为此我就找到了一个用GET方法查找单词的神器网站——在线翻译_在线词典_金山词霸_爱词霸英语,用起来就很

python中http请求方法有哪些

在python开发(http://www.maiziedu.com/course/python-px/)中,我们一般通过get.post方式发送http请求,可是最近在使用python做接口测试,发现python中http请求方法有许多种,作者整理了一番,把python中http请求方法都总结了出来,分享给大家,具体内容如下所示:一.python自带库----urllib2python自带库urllib2使用的比较多,简单使用如下:import urllib2response = urllib2