from appium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom time import sleepdescred_caps = { "platformName":"Android", "platformVersion…
方法一: from appium import webdriverfrom time import sleep descred_caps = { "platformName":"Android", "platformVersion":"5.1.1", "deviceName":"127.0.0.1:62001", "appPackage":"com.baid…
思考:手机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…
转载地址: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.…
from appium import webdriverfrom time import sleep desired_caps = { "platformName":"Android", "platformVersion":"9", "deviceName":"4871660c", "appPackage":"com.tencent.mm", &q…
# coding:utf-8 """参考博客链接:https://www.cnblogs.com/yoyoketang/p/7843819.html""" from appium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC…
当我们appium和Python环境都配置好了,如何启动我们第一个app呢?下面介绍appium+Python启动app的操作步骤,为了能够详细查看,我们这里使用夜游神模拟器进行示范. 测试项目:QQ 测试工具:appium.pycharm.夜游神模拟器 操作介绍: 第一步:打开我们的夜游神模拟器,然后我们的电脑上的运行(win+R),输入我们的cmd.当前是先确认我们的设备是否连接到电脑,真机连接方法同样 输入:adb devices A:如果显示下面操作,表示当前设备连接成功 B:如果连接失…
使用get_attribute()获取元素属性,括号里应该填写什么? 查看appium源码 如果是获取resource-id,填写resourceId self.driver.find_element(MobileBy.XPATH, "//*[contains(@resource-id,'followed_btn')]").get_attribute('resourceId') 如果是获取text,填写text,不是name,这是不准确吗? self.driver.find_eleme…
获取text # coding:utf-8 from appium import webdriver from time import sleep desired_caps = { 'platformName': 'Android', 'deviceName': '127.0.0.1:62001', 'platformVersion': '4.4.2', 'appPackage': 'com.baidu.yuedu', 'appActivity': 'com.baidu.yuedu.splash…
前言 接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两个方法都能实现back键.打开cmd输入指令 # 方法一: > adb shell input keyevent KEYCODE_BACK # 方法二: > adb shell input keyevent 4 2.常用的keyevent事件 解锁(KEYCODE_NOTIFICATION): a…
前言 上一篇已经解决切换到微信公众号的webview上了,但是定位webview上元素的时候一直提示找不到,打印page_source也找不到页面上的元素,这个问题困扰了一整天,还好最后找到了原因, 此处埋了一个深坑,需要再次切换handle 切换到webview 1.上一篇已经详细介绍如何切换到微信公众号的webview上,这里就不重复说了,贴下代码: # 切换到webview time.sleep(2) print(driver.contexts) driver.switch_to.cont…
一些使用Python编写获取手机App日志的操作 如何获取手机当前打开的App的包名 如何获取当前App进程的PID 如何查看当前App的日志 如何将日志保存到文件 如何关闭进程 如何不显示命令行窗口 1.如何获取手机当前打开的App的包名 可以直接在命令行中输入adb shell dumpsys window | findstr mCurrentFocus 以手机QQ为例,读取到的mCurrentFocus的信息为 mCurrentFocus=Window{cb7270e u0 com.ten…
Appium python api 根据testerhome的文章,再补充一些文章里面没有提及的API [TOC] [1]find element driver 的方法 注意:这几个方法只能通过self.driver调用 find_element_by_android_uiautomator def find_element_by_android_uiautomator(self, uia_string): """Finds element by uiautomator in…
Appium+python自动化8-AppiumPython API   前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts 2. current_context c…
Appium+python自动化8-Appium Python API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts 2. current_context cu…
前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts 2. current_context current_context(self): Returns the cur…
  1 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员.开发人员等提供参考. 1.2 预期读者 自动化测试人员.测试代表.开发人员等. 2 概述 2.1 Appium设计哲学 不需要为了自动化而且重新编译或修改测试app: 不应该让移动端自动化测试限定在某种语言和某个具体的框架:也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来做移动端自动化测试: 不要为了移动…
我们上步操作基本完成,下面介绍编写Python脚本启动app 打开我们pycharm新建.py文件 第一步:输入Python脚本代码: #coding=utf-8 from appium import webdriver import time desired_caps ={ 'platformName': 'Android', 'deviceName': '127.0.0.1:62001', # 模拟器名称(真机测试:输入真机名称) 'platformVersion': '4.4.2', #…
appium+python自动化测试 标签(空格分隔): appium 获取APP的包名 1.aapt即Android Asset Packaging Tool,在SDK的build-tools目录下.该工具可以查看apk包名和launcherActivity 2.在android-sdk里面双击SDK-manager,下载buidl-tools 3.勾选build-tools,随便选一个版本,我这里选的是24的版本 4.下载完成后:在D:\androidsdk\android-sdk-wind…
前言 前面两篇环境已经搭建好了,接下来就是需要启动APP,如何启动app呢?首先要获取包名,然后获取launcherActivity.获取这两个关键东西的方法很多,这里就不一一多说,小伙伴们可以各显神通.小编这里主要给大家推荐一个sdk自带的实用工具aapt. aapt即Android Asset Packaging Tool,在SDK的build-tools目录下.该工具可以查看apk包名和launcherActivity,当然还有更多的功能,有兴趣的可以查看相关资料. 一.下载aapt 1.…
前言 现在大部分app都是混合式的native+webview,对应native上的元素通过uiautomatorviewer很容易定位到,webview上的元素就无法识别了. 一.识别webview 1.用定位工具查看页面,发现页面上有些区域无法定位到,如下图左边红色区域,只能定位到这个大框框,红色框里面的元素是无法识别的. 2.这时候可以查看元素属性,如右图它的class属性,上面写着WebView,那毫无疑问这种页面就是webview了. 二.contexts 1.context是中文翻译…
前言 在启动app的时候,如果直接做下一步点击操作,经常会报错,于是我们会在启动完成的时候加sleep. 那么问题来了,这个sleep时间到底设置多少合适呢?设置长了,就浪费时间,设置短了,就会找不到元素报错了. 这个时候我们可以用wait_activity的语法,等到你想点击的页面activity出现了,再点击,可以有效的节省时间. wait_activity 1.查看源码 def wait_activity(self, activity, timeout, interval=1): "&qu…
各种百度将Appium + python的环境搭建好后,开启移动app自动化的探索(基于Android),首先来记录下如何启动待测的app吧! 如何启动app呢?首先要获取包名,然后获取launcherActivity.获取这两个关键东西的方法有很多,在这里推荐一个sdk自带的实用工具aapt:aapt即Android Asset Packaging Tool,在SDK的build-tools目录下.该工具可以查看apk包名和launcherActivity,当然还有更多的功能,有兴趣的可以查看…
简介 随着现在智能手机的普及和应用,小到五六岁或者更小的娃娃,老至七八十岁老头老太太都是智能手机的用户,基本上达到每个人都在用,每次在地铁或者公交上,就看看到这样的场面,手指不停地在手机屏幕上来来回回的的滑呀滑,滑呀滑!滑个不停,那么我们如何在自动化测试中用脚本来实现这些操作呢???在这里宏哥给小伙伴们介绍两种操作,一个是比较低级的滑动,另一个是比较高级的滑动. 低级溜冰的滑动 例如:在app应用日常使用过程中,会经常用到在屏幕滑动操作.如刷朋友圈上下滑操作.浏览图片左右滑动操作.特别是现在抖音…
进行调试,打开X5: http://debugmm.qq.com/?forcex5=true http://debugx5.qq.com http://debugtbs.qq.com 一般前两个就可以了. 微信打开:http://debugx5.qq.com,打开页面,按图中勾选. ===================================================== 然后再谷歌浏览器输入:chrome://inspect/devices#devices, 打开页面可能会报:…
前言 unittest是python自带的单元测试框架,类似于Junit(Java单元测试框架).支持自动化测试,可编写测试前置&后置条件,并且可批量运行测试用例并生成测试报告. 使用unittest需遵循以下几点: 1,使用时需导入unittest模块 2,编写测试类,并继承unittest.TestCase 3,测试用例名字以test开头(unittest会自动将test开头的方法放入测试用例集中) 4,断言需用unittest断言格式 用法简介 一.前置&后置 unittest前后置…
Python NLTK 获取文本语料和词汇资源 作者:白宁超 2016年11月7日13:15:24 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公开数据集.模型上提供了全面.易用的接口,涵盖了分词.词性标注(Part-Of-Speech tag, POS-tag).命名实体识别(Named Entity Recognition, NER).句法分析(Syntactic Parse)等各项 NLP 领域的功能.本文主要介绍NLTK(Na…
Python基本之文本操作 一.初识文本的基本操作 在python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open. 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 1.open形式 一.打开文件 文件句柄 = open('文件路径', '模式') 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ,只读模式[默认]…
继上一篇[Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 对豆瓣图书Top250进行爬取以后,鉴于还有一些问题没有解决,所以进行了进一步的交流讨论,这期间得到了一只尼玛的帮助与启发,十分感谢! 上次存在的问题如下: 1.写入不能继续的问题 2.在Python IDLE中明明输出正确的结果,写到excel中就乱码了. 上述两个问题促使我改换excel处理模块,因为据说xlwt只支持到Excel 2003,很有可能会出问题. 虽然“一只尼玛”给了一个Validate函…