一般首次启动一个手机App时都会有系统权限弹框,如下图所示: 权限弹窗上面的按钮都是固定的,只需要定位到“ALLOW”按钮,点击就可以了,代码如下: 这里主要用selenium里面的显示等待模块(WebDriverWait)和判断模块(expected_conditions)来定位,所有需要导入相应模块~…
使用appium框架测试安卓app时,如果需要获取toast弹框的文案内容,那么再点击弹框按钮之前,一定记得千万不要加time.sleep()等待时间,否则有延迟,一直获取不到: 获取弹框的代码: message=self.driver.find_element_by_xpath("//*[contains(@text,'成功添加到购物车')]")  …
一.启动浏览器:pycharm中python脚本如下: from appium import webdriver desired_caps ={ 'platformName':'Android', 'deviceName':'127.0.0.1:62001', 'platformVersion':'6.0', 'appPackage':'com.android.browser', 'appActivity':'com.android.browser.BrowserActivity' } webd…
在使用appium进行安卓端app的自动化测试,我碰到这样下面这几个问题: 1.每次启动我的待测app时总会提示app权限 2.关闭完权限后,无法识别页面对象 第一个问题的解决,我更换不同的真机进行测试,弹框元素不一样,我写了一个类,专门来识别这些不一样的弹框,其中碰到一个问题,就是针对小米6手机进行真机测试的时候, webdriver的click()无效,为了解决这个问题我增加了一种手机模拟点击操作(通过adb命令点击),解决了小米6手机上app权限弹框的关闭. 可是解决了上一个问题后就遇到了…
前提:需先安装配置好appium+python自动化环境,已配置好环境的小伙伴可以参考以下步骤启动Android app,具体步骤如下: 一.USB连接手机 (1)手机USB连接电脑 (2)手机打开开发者模式.USB调试功能 二.基础信息配置 1,获取设备号 终端获取设备号,指令:adb devices 2,获取apk包名.activity (1)打开终端 (2)输入指令“aapt dump badging /Users/alisa/Downloads/weixin_1520.apk” 备注:记…
一.设备信息配置 脚本如下: from appium import webdriver class my_app(): def __init__(self): desired_caps = {} # 使用的手机或模拟器操作系统 desired_caps["platformName"] = "Android" # ======== honor V9 ============== # 系统版本 desired_caps[" # 使用的手机名称 desired_…
package com.aqioo.db; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import com.aqioo.R; import android.content.Context; import android.database.sqlite.SQLiteDatabase; //在res文件夹下新建 raw 文…
<div class="downLoad clearfix"> <div onclick="jsOpenApp.Close(this);" class="downClose fl"></div> <img class="fl downLogo" src="/Content/M/New/image/downLogo.png" alt="">…
<dx:ASPxButton runat="server" ID="NewGridButton" Text="新增授权" CssClass="btn-success" Width="100px" AutoPostBack="false" Visible="false"> <ClientSideEvents Click="function(s…
public void permission() { for (int i=0; i <= 10; i++) { if (getPageSource().contains("允许") || getPageSource().contains("禁止") || getPageSource().contains("授权")) {// 出现权限提示 try { findElement(By.xpath("//android.widget.…
在前面的教程中,你已学习如何通过 SSH 连接到虚拟机 (VM) 并手动安装 NGINX. 若要以快速一致的方式创建 VM,通常需要某种形式的自动化. 在首次启动 VM 时实现自定义的常见方法是使用 cloud-init. 本教程介绍如何执行下列操作: 创建 cloud-init 配置文件 创建使用 cloud-init 文件的 VM 在创建 VM 后,查看正在运行的 Node.js 应用 使用 Key Vault 安全地存储证书 使用 cloud-init 自动进行 NGINX 的安全部署 N…
经过进两周的持续发酵,Facebook5000万用户数据泄露事件,已让其处在舆论的风尖浪口.对于手机APP泄漏用户个人隐私问题,再次受到人们的关注.对于这个问题,你会怎么看? 隐私,即不愿公开的个人信息,前几日,百度CEO李彦宏在某论坛上说了一段引发争议的话:"假如他们愿意用隐私交换便捷性或者效率的话,很多情况下他们是愿意这样做的." 通常,我们在安装使用手机APP时都会遇到APP要求开放用户权限的问题,你是否会意识到,这很可能会使你的个从隐私暴露在大庭广众之下?据网上调查数据显示,超…
lr11安装一个移动补丁以后,就可以支持抓包文件直接转换为http/html协议的脚本.下面简单说一下过程. 1.工作思路:手机连接可上外网wifi,在手机wifi中设置本机ip的网络地址,然后在本机pc上用whireshark抓包,抓手机app所有操作的动作,保存为*.pcap文件.选择保存时,选择第二项的pcap文件. blob.jpg791x482 145 KB 2.在手机连接wifi中网络设置,设置本机ip:192.168.xx.xx为代理主机名,端口:8888,ip设置:dhcp. 3…
假设有两个App,项目名分别是SampleA和SampleB,需要在SampleA里点击一个Button来启动SampleB,并传递一个字符串.具体实现步骤如下: 1. 在SampleB的info.plist文件里新增一个URL Schemes,并指定一个字符串,这个字符串就是调用App的链接名称: 2. 在SampleA的按钮点击操作里执行下面代码: - (IBAction)openClickHandler:(id)sender { [[UIApplication sharedApplicat…
示例浅谈PHP与手机APP开发,即API接口开发 API(Application Programming Interface,应用程序接口)架构,已经成为目前互联网产品开发中常见的软件架构模式,并且诞生很多专门API服务的公司,如:聚合数据.百度APIStore 作为最流行的服务端语言PHP(PHP: Hypertext Preprocessor),在开发API方面,是很简单且极具优势的这篇文章写给不太了解PHP开发API接口的开发者 一.先简单回答两个问题 1.PHP 可以开发客户端吗?答:正…
API(Application Programming Interface,应用程序接口)架构,已经成为目前互联网产品开发中常见的软件架构模式,并且诞生很多专门API服务的公司,如:聚合数据(https://www.juhe.cn/) 作为最流行的服务端语言PHP(PHP: Hypertext Preprocessor),在开发API方面,是很简单且极具优势的这篇文章写给不太了解PHP开发API接口的开发者 一.先简单回答两个问题 1.PHP 可以开发客户端吗?答:正确的回答是,不适合,因为PH…
2021年9月30日下午:我正愉快的期盼着即将到来的国庆假期,时不时刷新下appstoreconnect的网址,28号就提上去的包,今天还在审核中....由于这个版本刚升级的xcode系统和新出的iOS 15系统,就怕出现什么幺蛾子导致项目被拒,在国庆节假期中被拒的话,那真的是一件闻者伤心听者落泪的事儿.... 所以盼望着能在我下班之前出审核结果,结果到了下午4点还没出结果,想着求人不如求己,拿着iOS 15系统的测试机重新安装了提审包,安装完起先没太注意是否允许追踪广告的弹框没弹出来,主要也是…
原文:Android手机app启动的时候第一个Activity必须是MainActivity吗 Android手机APP启动的第一个Activity是可以自己设置的,不是必须的MainActivity,可以是任何的Activity. 设置Android手机APP启动的第一个Activity得看Android项目里的mainfest.xml文件: android.name属性值是由包名(com.example.login)+启动的Activity类名(Login)组成的,如果要修改APP启动的第一…
appium初始化driver时,如果未安装该app会先进行安装,安装时,很多安卓手机都会弹框,需要手动确认安装. 如小米的机器, 这是个头疼的问题,之前在网上找遍了,只有通过adb去点相对坐标成功了,但是依然觉得不完美.一来没法判断是否有弹框,再者就算通过坐标比例去点,也没法保证所有系统的安装按钮都在那个相对位置. 后来突发奇想,想到一个好办法,讲下原理: 要运行appium的手机,一般至少会安装3个app,分别是输入法.Appium Settings.unlock. 既然要运行appium自…
首先配置好电脑环境,主要是appium太难配了,不多说 然后,分两步 第一步:启动appium服务器 有三种方法,1.下载appium-desk-top(桌面客户端),启动 2.终端启动:appium -p 4723(写这些足够,其他都用默认的就行,甚至-p都不用写,直接就appium) 3.python启动,Python启动appium服务器需要重新开一个线程,因为如果不开线程,Python会卡在appium服务器打开的状态, 这个涉及到线程,有点复杂,回头再研究 第二步:Python程序启动…
自从支付宝推出扫码领红包活动后,这种模式独特的赏金机制,短时间内吸引了大量的关注,但是随之也产生了很多的问题,比由于如在赏金的驱动下,微信群里铺天盖地的红包口令,朋友圈里各式各样的领红包二维码图片, 某种程度上影响了我们平静的生活. 支付宝推出扫码领红包活动的意义是一方面刺激商家对支付宝收款的兴趣,提高市场占有率,并获得额外的赏金:另一方面,刺激消费者使用支付宝结账,目的也无非提高市场占有率.对于微信群,朋友圈的这些消息我们可以选择不看,但可怕的在于有时候支付宝会莫名其妙的自动打开领红包界面,我…
上一篇文章我们学习了android通过findViewById的方式查找控件,本章将了解button控件,及btton如何绑定控件. 通过android的ui设计工具设计一个登录页面: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_wi…
爬前准备工作 在开始安装Appium之前,你要先知道Appium是做什么的?Appium 是一个自动化测试开源工具,看到没,做测试用的,它有点类似Selenium,可以自动操作APP实现一系列的操作. 标记重点,可以使用python对Appium编写脚本,实现对App的抓取. 今天就给你写一个100%叫你可以运行起来的入门实例. 下载地址 用稳定的最新版本即可. https://github.com/appium/appium-desktop/releases/tag/v1.10.0 下载之后,…
在开发中,我们在启动app的时候,屏幕会出现一段时间的白屏或者黑屏,不同设备时间长短不同.很影响用户体验. 首先分析一下,产生这个现象的原因,当我们在启动一个应用时,系统会去检查是否已经存在这样一个进程,如果不存在,就是冷启动.系统和APP本身都有很多工作需要处理.首先系统的服务会先检查startActivity中的intent的信息,然后在去创建进程,最后才是执行启动Acitivy的操作.而我们上面提到的显示白黑屏的问题,就是在这段时间内产生的. 系统在绘制页面加载布局之前,首先会初始化窗口(…
症状 iOS 10 之后,陆陆续续地有用户联系我们,说新机第一次安装.第一次启动的时候,app 首屏一片空白,完全没数据.kill 掉重新打开就好了. 一开始以为是用户网络情况不好,但随着越来越多的用户报告这个问题,我意识到这并不是偶然情况.但是并非所有用户都如此. 而且卸载掉之后,如果再装,也不会出现这现象.问题只会出现在这台设备第一次安装.第一次启动的情况下.如果把手机抹掉.重置,问题还能重现. 定位问题 这个问题真的很棘手,也很难定位.幸运的是,公司同事想到把手机抹掉重置,得以在我眼前重现…
前言 用真机运行appium代码,首次打开app有的手机会出现权限弹窗问题,一般这种弹窗都是在引导页前面或者引导页后面出现.权限弹窗上面的按钮都是固定的, 只需要定位到"始终允许"按钮,点击确定就可以了.还有一个问题是这种弹窗的个数不确定,有的app是2个有的是3个,为了解决这个问题,可以专门写个判断方法. 注意:模拟器是不会有这种权限弹窗的 环境: appium 1.8 android 7.0 美团app 权限弹窗 1.以美团app为案例,安装app首次启动的时候,在引导页出现权限弹…
一 项目概述1.1 角色1.2 业务术语1.3 项目效果展示二 项目需求三 项目概要3.1 项目技术架构3.2 项目目录结构3.3 项目技术选型3.4 项目整体集群规划3.5 创建项目工程四 APP 数据生成模块4.1 创建公共模块工程4.1.1 创建 Java 工程,导入 pom 文件4.1.2 创建 AppBaseLog 基类4.1.3 创建 AppErrorLog 错误日志类4.1.4 创建 AppEventLog 事件日志类4.1.5 创建 AppPageLog 页面日志类4.1.6 创…
前言 什么?你问我国庆七天假期干了什么?说出来你可能不信,我爬取了cxk坤坤的抖音粉丝数据,我也不知道我为什么这么无聊. 本文主要记录如何使用appium自动化工具实现抖音App模拟滑动,然后分析数据得到粉丝用户信息. 环境准备 fiddler appium mitmproxy(mitmdump) python3.6 自带root的安卓虚拟机 Android SDK 安卓模拟器需要安装xposed框架并安装JustTrustMe组件,因为抖音会有ssl验证,会导致我们在将数据发送到我们的抓包工具…
1 摘要 近年来,随着移动应用从数量上和逻辑复杂程度上的增长,以及产品发布周期的紧缩,使得回归测试迫在眉睫,鉴于此APP自动化测试变得越来流行,当前主流的APP自动化工具有:Appium.Robotium.Espresso.Calabash等.Appium是一个开源的自动化测试框架,用于原生.混合和移动Web应用程序,支持Android和OS自动化测试以及Selenium WebDriver支持的所有语言.所以,我们结合前期项目组的自动化测试经验,在此探讨基于RF+Appium的APP自动化测试…
现在我们测试时,开发会先在本地机上打好测试包,自己安装,轮完一轮,开发修改好后,再打一个包.以下是功能测试时需要注意的点: 1.登录 ●登录用户名和密码错误时,界面有提示信息 ●用户主动退出登录后,下次启动APP时,应该进入登录界面 ●对于支持自动登录的APP,数据交换时  ,是否能自动登录成功且数据库操作无误 ●密码更改后,登录时是否做到了有效数据的校验 ●对于未登录时一些页面的操作,是否做了控制 ●切换账号登录,检验登录的信息是否做到及时更新 ●对于多个端都进行操作时,确保数据库操作无误,且…