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…
一,前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位toast或者获取toast的文案进行断言,如下图,通过定位"登录成功"的toast就可以断言今日头条登录用例是否通过.但toast区别于控件元素,无法获取焦点,不能通过uiautomatorviewer.bat.appium.weditor等工具定位,因此我们就需要通过别的方法来定位. 二,环境 windows 10 Android 10 appium 1.18.0 (desktop) selen…
使用python+appium做android的自动化测试时,首先需要启动appium服务,然后连接上手机,配置如下: desired_caps = {"platformName": "Android", "deviceName": "127.0.0.1:62001", "platformVersion": "4.4.2", # apk包名 "appPackage":…
配置toast请注意: 1.指定desired_caps["automationName"] = "UiAutomator2" 2.要求安装jdk1.8 64位及以上.配置其环境变量JAVA_HOME和path 3.Android系统5.0以上 4.appium server版本 1.6.3以上 5.xpath表达查找toast //*[contains(@text."xxxxx")] 6.只能等待toast存在,而不能等待可见. presenc…
Toast简介 Toast是一种简易的消息提示框. 当视图显示给用户,在应用程序中显示为浮动.和Dialog不一样的是,它永远不会获得焦点,无法被点击. 用户将可能是在中间键入别的东西.Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到. 而且Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消失. 举个例子:下方图片就是淘宝退出app时出现的toast信息 如果用 UI Automation Viewer这个工具是无法定位到的,那么如何进行定位呢? 这个…
一,selenium模块的两种截图方法 get_screenshot_as_file(filename) 参数filename为截图文件保存的绝对路径,如: driver.get_screenshot_as_file(r'E:/test_project/screenshot/test_01.png') save_screenshot(filename) 该方法与get_screenshot_as_file()不同的是,参数为文件名称,保存当前屏幕截图到当前脚本所在的文件,如: driver.sa…
思考:手机APP上的必填或错误文本提示一般1-2s就会消失,比较难定位,所以一般的固定元素定位方式是不可用的,那我们如何定位toast呢? 前提:1.Appium1.6.3以上(包括1.6.3) 2.下载安装node.js(官网下载即可) 3.下载安装uiautomator2及其2个配置文件(appium-uiautomator2-server-debug-androidTest.apk和appium-uiautomator2-server-v2.8.0.apk) 4.下载安装Android S…
获取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…
使用场景:在操作应用时常见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 截图如下,查找如下截…
转载地址:https://www.cnblogs.com/shangren/p/8191879.html 1. 首先执行这个命令:npm install -g cnpm --registry=https://registry.npm.taobao.org       安装cnpm(完成后如下图): 2. 然后通过这个命令: cnpm install appium-uiautomator2-driver   安装uiautomator2的配置文件,如图: mac本需要自主下载两个apk,(appi…
原来用的Appium1.5.3GUI版本,那为什么升级呢? 为了兼容最新版本的iOS10和Android7 Xcode8升级后,将不支持使用UIAutomation,而是改为使用XCUITest了,并且Xcode8支持了iOS 10,所以变化还是很大的.开发代码都必须使用Xcode8才能编译了.Appium1.5.3不支持使用Xcode8,所以升级Appium1.6来配合测试 Appium1.6,使用XCUITest支持iOS9.3和iOS10:使用UI Automator2支持Android.…
http://blog.csdn.net/hqzxsc2006/article/details/50036911 待实践.. 解决方法:appium下切换selendroid模式去获取Android的toast提示. desired_caps配置: desired_caps_android={ 'platformVersion':'4.4',\ 'deviceName':'',\ 'udid':'34d7d220',\ 'platformName':'android',\ 'automation…
使用场景: 在自动化测试过程中,难免会用到反判断,包括异常情况的处理,比如:find_element_by_name('测试') 判断"测试"是否存在,存在则点击,不存在则执行其他条件.先看底层方法,之后将举例说明被封装方法的具体使用. find_element(By.ID,value) find_element(By.NAME,value) find_element(By.TAG_NAME,value) find_element(By.CLASS_NAME,value)以上方法均可使…
在appium自动化测试脚本运行的过程中,因为网络不稳定.测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待的方法来避免这种情况,增加代码的健壮性. 一,元素等待方法 1,强制等待 import time # 强制等待5s time.sleep(5) 2,隐式等待 implicitly_wait()是由webdriver提供的隐式等待方法,它不是针对某一个元素,而是针对当前session(即当前drive…
做自动化测试的时候,可能需要根据弹出的Toast提示来做下一步判断.这里记录一下获取Toast内容的方法,同时巩固一下显示等待的方法之一WebDriverWait. from selenium.webdriver.support import expected_conditions as ec def find_toast(self, driver, message, timeout=10, poll=0.01): try: message = '//*[@text=\'{}\']'.forma…
目录 1.toast介绍 2.toast定位 3.示例 4.封装toast判断 1.toast介绍 Android中的toast是一种简易的消息提示框,toast提示框不能被用户点击,会根据所设置的显示时间自动消失. toas要appium1.6.3以上版本才支持,appium1.4的版本就别浪费时间了. 再来看下toast长什么样,像这种弹出来的消息"再按一次退出百度App",这种消息提示框就是toast了. 如下图所示: 2.toast定位 toast定位需要添加两步操作: 添加启…
toast是什么? 想要获取toast的小伙伴们,肯定知道这个是一个什么玩意,例行还是加一个图,加以解释,下图的就是传说中的toast,它有一个特点,出现时间特别短,很难通过定位元素去获取这个toast. 不能通过明确的元素定位来获取,那要怎么获取到toast呢?在做app自动化的时候,toast出现率非常高,所以必须要获取到toast,方便后面的断言.那要怎么通过什么方式获取呢? 答案就是:采用Xpath + text 进行定位 python -appium -真机 是怎样工作的? 知道通过什…
Python  Appium  元素定位 常用的八种定位方法(与selenium通用) # id定位 driver.find_element_by_id() # name定位 driver.find_element_by_name() # xpath定位 driver.find_element_by_xpath() # class_name定位 driver.find_element_by_class_name() # css 定位 driver.find_element_by_css_sele…
封装Excel操作方法:先装openpyxl:pip install openpyxl==2.4.5(可以指定版本) 封装脚本:#encoding=utf-8 from openpyxl import load_workbookfrom openpyxl.styles import Border,Side,Fontimport time class parseExcel(object):    def __init__(self,excelPath):        self.excelPath…
python使用threading获取线程函数返回值的实现方法 这篇文章主要介绍了python使用threading获取线程函数返回值的实现方法,需要的朋友可以参考下 threading用于提供线程相关的操作,线程是应用程序中工作的最小单元.python当前版本的多线程库没有实现优先级.线程组,线程也不能被停止.暂停.恢复.中断. threading模块提供的类:  Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer,…
从testerhome上看到很多测试同学分享了toast的获取方式,其中大部分是java版本的,但也有个python版本的:Appium1.7.2 android toast 消息测试 Appium获取toast实际使用了谷歌改造的Uiautomator2测试框架原理,具体改了哪些东西我还木有细看. 前言: Appium1.5以后版本(server版本)才支持toast定位,并且’automationName’必须设置为’Uiautomator2’. 因为appium底层使用的uiautomat…
python从数据库获取全量数据的方法 学习了:https://blog.csdn.net/lom9357bye/article/details/79503658 原文膜拜: import psycopg2.pool from datetime import datetime # 批量查询大小 batch_size = 1000 def cursor_query(): # 使用数据库连接池,使用普通的连接方法运行貌似也会内存飙升,因此改为了连接池 simple_conn_pool = psyco…
前言 Appium中很经典的问题了,在两年前也就是2017年3月6号07:22分,我才看到appium1.6.3版本的发布,更新内容为Ios上可以实现Toast的获取,而Windows也就是安卓端,还需要等待,可惜在那会没有mac本,很遗憾,无法动手尝试,这个问题就一直搁置了,当时还发了个朋友圈记录下当时的心情.如下图: 什么是Toast? Android中的Toast是一种消息提示弹框,且Toast显示时间有限,一般3秒左右就消失,无法使用定位元素工具定位,且无法被点击操作. 简单理解,就是弹…
Android获取toast,需要在参数里设置automationName:Uiautomator2 设置设备的信息 desired_caps = { 'platformName': 'Android', # 平台 'platformVersion': '5.1', # 版本号 'deviceName': 'appPackage': 'appActivity': 'unicodeKeyboard': 'True', # 防止键盘中文不能输入 'resetKeyboard': 'True', #…
一,获取apppackage 方法不止一种,我只介绍自己知道的两种. 1,通过APPIUM工具添加APK包后,会自动显示出来. 2,打开UI AUTOMATOR VIEWER 定位工具,随便指向一个定位元素,就会显示出来. 二:获取appActivity方法 使用log查看大法(嗯,windows上没grep不幸福,好在有powershell的Select-String,可以拿来勉强一用),直接搬砖. a.启动待测apkb.开启日志输出:adb logcat>D:/log.txt c.关闭日志输…
使用appium框架测试安卓app时,如果需要获取toast弹框的文案内容,那么再点击弹框按钮之前,一定记得千万不要加time.sleep()等待时间,否则有延迟,一直获取不到: 获取弹框的代码: message=self.driver.find_element_by_xpath("//*[contains(@text,'成功添加到购物车')]")  …
一.运行错误 Android获取toast,需要在参数里设置automationName:Uiautomator2 1 # 设置设备的信息 2 desired_caps = { 3 'platformName': 'Android', # 平台 4 'platformVersion': '5.1', # 版本号 5 'deviceName': 6 'appPackage': 7 'appActivity': 8 'unicodeKeyboard': 'True', # 防止键盘中文不能输入 9…
封装基础 广义上面向对象的封装:代码的保护,面向对象的思想本身就是一种封装 只让自己的对象能调用自己类中的方法 狭义上的封装-面向对象三大特性之一(私有变量,用公有的方法封装私有属性,方法叫封装) 把属性和方法都藏起来,不让你看见 类的特性 所有的私有,都是在变量左边加双下划线 所有的私有,都不能在类的外部使用 对象的私有属性 类的私有方法 类中私有的静态属性 class Person: def __init__(self, name, password): __key = 123 #静态私有属…
Python Appium 滑动.点击等操作 1.手机滑动-swipe # FileName : Tmall_App.py # Author : Adil # DateTime : 2018/3/25 17:22 # SoftWare : PyCharm from appium import webdriver caps = {} caps['platformName'] = 'Android' caps['platformVersion'] = '6.0' caps['deviceName']…
---恢复内容开始--- Appium自动化公司内部测试培训1-环境搭建 课程目的 一.Python + Appium 环境搭建 课程内容 1    安装前准备工作 搭建环境所需要的安装文件已经下载好,从SVN上获取即可,解压,如下 2   Appium环境搭建 Appium是一个开源的,适用于原生或者移动网络和混合应用程序在 iOS 和 Android 平台上的的开源自动化测试框架. 2.1  安装Node.js 点击安装文件,下一步下一步直接安装,安装成功后,输入cmd打开windows的命…