有段时间没有使用python编写测试用例了,很长时间以来,感觉appium这个测试工具确实不错,今天又重新拿起来,分享一下自己学习的一些用例,欢迎大家一起交流、学习!1.登录客户端#coding=utf-8import osimport unittestfrom appium import webdriverimport timefrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions a...
TouchAction1.源码可以在这个路径找到:Lib\site-packages\appium\webdriver\common\touch_action.pyclass TouchAction(object):def __init__(self, driver=None):self._driver = driverself._actions = []def tap(self, element=None, x=None, y=None, count=1):模拟手指触摸屏def press(self, el=None, x=None, y=None):短按:模拟手指按住一个元素,或者坐标def long_press(self, el=None, x=None, y=None, duration=1000):长按...
研究了一段时间的Appium android app的自动化测试,工作中需要连接多台手机终端同时执行测试用例,我实现的方式是获取用例中需要执行用例的设备id个数以及实际连接到的设备数(通过adb devices获取),然后启动相应数量的Appium 服务,以便每个设备执行时并发进行并且互不影响。当然也可以通过selenium grid来实现,只是目前还在学习研究中,还是先把目前启动多个appium服务实现的方式记录下来。一、Windows下启动单个appium服务需...
Appium Appium 入门到原理之 Appium 基于安卓的各种 FindElement 的控件定位方法实践和建议 转载:https://testerhome.com/topics/1970 TechoGoGoGo · 2015年02月04日 · 最后由 kuailel45 回复于 2016年01月11日 · 2485 次阅读 目录 AppiumDriver 的各种 findElement 方法的尝试,尝试的目标应用是 SDK 自带的 Notepad 应用。findElementByName示例el = driver.findElementByName("Add note");assertThat(el.getText(),equalTo("Ad...
1、安装Appium通过终端安装:安装nodejs,下载地址:https://nodejs.org/download/,安装完成后打开终端输入node -v,检查是否安装成功安装npm,打开终端,输入命令:sudo bash sudo curl -L https://npmjs.org/install.sh | sh安装完成后,输入npm -v,检查是否安装成功安装appium,命令:npm install –g appium npm --registry http://registry.cnpmjs.org install -g appium (推荐这种,npm的国内镜像)安装完成后,输入appium 提...
--------------------------------------------------------------1. jdk-8u121-window(32位的就下载32位的,64位的就下载64位的)。2.Android-sdk_r24.3.4-windows(下载这个adt-bundle-windows-x86-20140624)3.Python:(V3.6也可以)4.appium:1.4.13.15.Node.js:node-v4.4.7-x646.Appium-python-Client7.pycharm————————————————--------------------------------1.1jdk1.8.exe 安装,配置环境变量 classpat...
一、node.js安装https://nodejs.org/en/download/##一直下一步###cmd查看二、 .NET Framework安装https://www.microsoft.com/zh-cn/download/details.aspx?id=30653三、AppiumForWindows的安装https://bitbucket.org/appium/appium.app/downloads/ 四、jdk安装http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmljdk环境变量设置新建变量JAVA_HOME,路径为 C:\Program Files (x86)\Java\j...
py文件的名称为:appium_config.py 中的写法如下# coding=UTF-8‘‘‘ Created on 2017.1.13 @author: Lucky ‘‘‘ from appium import webdriver from Test.logs.logs import logging #本人自己封装的方法,你们写时可以不用调用,并且删除方法中调用的logging即可class Singleton(object): driver = Nonedef __new__(cls, *args, **kw):if not hasattr(cls, ‘_instance‘):orig = super(Singleton, cls)logging.info(‘-...
配置文件信息log.conf:[loggers]keys=root,simpleExample[logger_root]level=DEBUGhandlers=consoleHandler,fileHandler[logger_simpleExample]level=DEBUGhandlers=consoleHandlerqualname=simpleExamplepropagate=0[handlers]keys=fileHandler,consoleHandler[handler_consoleHandler]class=StreamHandlerargs=(sys.stdout,)level=INFOformatter=simpleFormatter[handler_fileHandler]class=FileHandlerargs=(‘runlog.log‘, ‘...
前言有时候页面上没有id属性,并且其它的属性不唯一,平常用的比较多的是单数(element)的定位方法,遇到元素属性不唯一,就无法直接定位到了。 于是我们可以通过复数(elements)定位,先定位一组元素,再通过下标取出元素,这样也是可以定位到元素的。单数与复数1.find_element开头的是13种单数定位2.find_elements开头是13种复数定位定位一组对象1.对比用单数定位find_element和复数定位find_elements定位元素的结果# coding:u...
一、Appium_Python_Client介绍 Appium的实用方法都藏在Client的源码里,对于driver和webelement实例,均有对应的元素查找方法(webelement查找的是下面的子元素),有些儿专门针对手机的函数,则需要在这个Client安装后方可使用。(以下内容转自:http://testerhome.com/topics/1166)appium为了实现自己的find查找方式,首先自定义了一个MobileBy类,给这个类对象塞入了它定义的一些扩展属性,这些属性的值会通过webdriver协议推...
1.配置多设备参数:import multiprocessingclass A(unittest.TestCase): def android_devices(self, udid, port,systemPort): capabilities = { "platformName": "Android", "udid": udid, "deviceName": "WCGEL7U899999999", "appPackage": ‘com.xxxxxx.activities‘, "systemPort": systemPort, "appActivity": ‘com.xxxxxx.activities.activity...
1.打开Appium运行 2.在Pycharm输入代码如下所示:from appium import webdriverdesired_caps = {} #初始化 desired_caps[‘platformName‘] = ‘Android‘ #使用哪种移动平台 desired_caps[‘platformVersion‘] = ‘6.0‘ # Android版本 desired_caps[‘deviceName‘] = ‘Android Emulator‘ # 启用哪种设备 desired_caps[‘appPackage‘] = ‘com.android.calculator2‘ desired_caps[‘appActivity‘] = ‘.Calculator‘d...
一、滑动功能的封装。def get_size(): size=driver.get_window_size() x=size[‘width‘] y=size[‘height‘] return x,ydef swipe_left(): #从右向左滑动 x1=get_size()[0]*0.85 y1=get_size()[1]*0.5 x2=get_size()[0]*0.15 sleep(3) driver.swipe(x1,y1,x2,y1)def swipe_right(): #从左向右滑动 x1=get_size()[0]*0.15 y1=get_size()[1]*0.5 x2=get_size()[0]*0.85 sleep(3) driver.swipe(...
fiddler 获取response中json内容,在fiddler scrpit中 OnBeforeResponse函数内加以下代码 //过滤无关请求,只关注特定请求if (oSession.fullUrl.Contains("所需网站")||){oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况var fso;var file;fso = new ActiveXObject("Scripting.FileSystemObject");//文件保存路径,可自定义file = fso.OpenTextFile("文本路径",8 ,true);//file.writeLine("Request-url:" + oSes...