使用场景: 下图通过常规方法是定位不到“红色”这个按钮的 我们把鼠标放置上去,下图右侧会显示该点的坐标地址 然后使用click a point指令定位 click a point 64 743 duration=1000…
第1章 课程快速预览(必看!!!)在这一章节中,老师讲带领你快速预览课程整体.其中,涉及到为什么要做这么一门实战课程.制作一个小程序的完整流程是怎么样的,以及如何做项目的技术选型. 第2章 30 分钟快速入门微信小程序(已掌握,可略过)在这一章节中,老师讲带领你从如何注册微信小程序开发者账号.工具的下载开始,到完成第一个小程序,再到组件与 API 的使用整个过程,最后来总结微信原生小程序的缺点. 第3章 30 分钟快速入门 Vue.js 框架(已掌握,可略过)在这一章节中,老师将带领你从第一个…
appium 进行 小程序自动化尝试: 由于工作中进行app自动化用的是appium,故首先尝试用appium进行小程序自动化,以美团小程序为例(python脚本实现) 一.配置基础信息 启动微信app python脚本如下: 二.编写测试脚本进入小程序首页 进入美团小程序首页实现脚本如下: 三.定位美团外卖首页元素(尝试结果不理想) (1)尝试用android adk 自带UI Automator定位工具定位  在UI Automator上,点击页面元素,可以发现,小程序页所有文本元素属性cl…
微信小程序自动化 https://www.cnblogs.com/yyoba/python27 - FautoTesthttps://www.cnblogs.com/yyoba/p/9973731.html…
项目思想:关键字+数据驱动混合测试 基于Android-微信小程序自动化的关键是:webview的切换 对于微信App来说如何从NATIVE切换到webview的过程 测试版本信息 1.微信版本:7.0.21 2.Android:7.0 3.appium引入依赖:6.1.0 4.testng引入依赖:6.14.3 初始化实例配置信息 1.配置参数如下: 其中涉及到微信内置webview版本与chromedriver一致性设置,查看流程如下: 第一步:查看微信webview版本信息,这里通过uc-…
微信为小程序提供客服消息能力,小程序用户可以方便快捷地与小程序服务提供方进行沟通,并且已经做成了组件的形式,直接就可以调用.客服会话按钮,用于在页面上显示一个客服会话按钮,用户点击该按钮后会进入客服会话.那么如何自定义成悬浮客服会话按钮呢?随Z5Win一起来看看 1.我们可以定义contact-button的样式,加一个class.这个客服组件可以放在一个固定模板里,方便每个页面都调用到. <view> <contact-button class="img-plus-style…
前言: 小程序开发中诸如获取用户手机号码.调起微信支付.领取卡券等api都是会有一定的延迟的.也就是说通过点击按钮调用这些api的时候,从点击按钮调用api,到支付页面或者领取卡券界面展示出来是需要一定时间的,连续点击按钮,还是有可能会重复调用的. 虽然这种情况有点极端,正常用户是不会这么连续快速的点击按钮的,但是也不能排除有用户手抖,连续点了两下.如果重复调用的话,不仅体验不好,单击事件中涉及到后端接口操作的也可能引起其他异常.所以这个问题还是要处理下的. 刚开始想到的是使用loading开启…
小程序  跳转web-view  点击左上角返回需要点击2次才能返回 再html页面引入js即可解决 <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.0.js"></script> <script>        window.onunload = function () {            wx.miniProgra…
让微信小程序每次请求的时候不改变session_id的方法 每次微信小程序请求的时候都会改变session id, 还好他的请求方法内可以设置header头 所以只需要在启动程序后第一次请求服务器获得一个sessionid(或是唯一编号 ) 然后本地存储起来,每次请求服务器的时候就在header里面带上 但是有个问题就是 你本地存储了这个session id后那么以后每次都会是这个session id 所以建议在程序每次启动的时候先清空本地存储的session id 然后发送首次请求获取新的se…
微信小程序自动化测试系列分享 一.Minium 简介 minium 是微信团队为小程序专门开发的自动化框架,我们可以用它来做小程序的UI自动化测试,但是它的能力却不仅仅在于UI自动化. 正是得益于官方订制打造,所以对于小程序很多原生内容和特性的支持自然也是非常独到的,比如: 直接对函数进行 mock 直接跳转到小程序某个页面 直接设置页面数据 这些能力是其他的一些工具做不到的.不仅如此,还有诸多其他特性也非常的吸引人: 支持一套脚本,iOS & Android & 模拟器,三端运行 提供丰…
项目介绍 Taro_Mall是一款多端开源在线商城应用程序,后台是基于litemall基础上进行开发,前端采用Taro框架编写,现已全部完成小程序和h5移动端,后续会对APP,淘宝,头条,百度小程序进行适配.Taro_Mally已经完成了 litemall 前端的所有功能 扫码体验 由于小程序没有认证,只发布了一个预览版,只能加15个人,如有需要,请点击小程序申请 小程序 h5移动端 项目架构 项目用Taro做跨端开发框架,Taro基本采用React的写法,项目集成了 redux dva 控制单…
前置解释:1.单纯从功能测试的层面上来讲的话,APP 测试.web 测试和H5测试在流程和功能测试上是没有区别的2.Web项目或pc项目都是在电脑上进行测试的.常见的PC项目架构有BS架构和CS架构的,BS架构就是通过浏览器(browser)请求后台服务(server),后台返回到响应内容显示在浏览器上3.app测试平台分为安卓和IOS端:安卓测试需要在安卓手机上安装开发提供的apk测试包:IOS测试需要将手机UUID提供给开发安装ipa测试包进行测试. 不同点:1.系统架构不一样a.web端测…
UI自动化中的重要工作就是元素定位了,高效精准的定位方法可以让工作事半功倍. 在过去的一段web自动化经历中,使用的selenium库支持了多种定位方法,我们可以利用这些定位方法来做进一步封装,写出符合项目更高效的定位器. 一.get_element() 与 get_elements() 那么在小程序的Minium框架中,是如何定位元素的呢?先来回归下上一节中演示用的代码: import minium class ComponentTest(minium.MiniTest): def test_…
最近更新略疲,主要是业余时间多了几个变化.比如忙活自己的模拟赛车驾舱升级.还跟朋友筹备一个小程序项目.另外早上的时间留给背单词了... 上一章中讲到Page接口的get_element()与get_elements()方法,其中有个必填参数就是选择器,而 minium 正是通过它来定位元素的. 对前端有过了解的童鞋,肯定对css选择器不陌生,CSS 选择器用于"查找"(或选取)要设置样式的 HTML 元素. 但是在小程序中用的是特有的格式WXSS,WXSS (WeiXin Style…
前言 最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试? 本篇以摩拜小程序为例,介绍如何定位小程序里面的元素 运行环境: android 7.0 appium v1.7.1 webview进程 1.小程序和微信公众号还不太一样,基本思路差不多,先配置:chromeOptions 'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'} 2.androidProcess进程可以通过adb shell去查看,先…
解析微信小程序 注意:若上面方法不行就使用下面的 小程序对应的chrome驱动版本包,2.4版本的…
minium文档 个人将其部署到了自己的服务器上,如有需要可以访问共同学习这个minium 用python来实现小程序自动化测试... 文档地址 http://49.232.203.244:3000/#/minium/Python/readme 参考资料 https://git.weixin.qq.com/minitest/minium-doc…
一:怎么开启微信小程序的webview调试定位元素 操作如下(android设备): 1.打开X5内核的方法在聊天窗口任意输入"http://debugx5.qq.com" 点击"安装线上内核" 2.安装完成后,重启"微信"应用,在次在聊天窗口中,点击启用X5内核 "debugmm.qq.com/?forcex5=true" 提示X5内核已经强制启用 3.点击"http://debugx5.qq.com/"…
一.准备: 1.经微信认证过的微信公众号. 2.经微信认证过的微信小程序号. 先来看看微信小程序官方的文档,https://developers.weixin.qq.com/miniprogram/dev/api/wx.addCard.html 在看看微信介入卡券的流程,https://mp.weixin.qq.com/cgi-bin/announce?action=getannouncement&key=1490190158&version=1&lang=zh_CN&pl…
1.  √ 这种错误多半是该js文件中没有Page这个方法,就算是空的js也必须要把Page({ })写上去 2.  √ 这种错误多半是该json文件没有内容,所以必须要加上{ },就算是空内容也要加上{ }. 补一句:小程序里json文件中不允许有注释不然会报错. 3.  未解决 这个问题我不知道怎么解决了.我使用了一个模板,iconClass在当前页面的js中的data里是一个数组,我只想让它使用第一个属性,但是使用数组的下标 iconClass[ 0 ]这样就出现错误了,如果不要下标就是数…
前言 小程序上线刷爆了朋友圈,但是最近渐渐消沉了,很少有动静!最近公司项目需要,体验了一下微信小程序,制作了几个功能,布局感觉很简单,但是交互和动画等写起来确实很费劲,主要是因为他不能操作DOM,只能修改数据!下面介绍一下我制作小程序完成的几个小的功能,希望能够给开发小程序的朋友带来帮助! 滚动动画制作 小程序制作回到顶部,或者滚动到某个位置,很简单,也有很多实现方法! 例如: .动态改变它的 scroll-top .scroll-into-view 滚动到某个ID的位置 但是,问题来了,这个效…
准备 1.在http://lbs.qq.com/网站申请key 2.在微信小程序后台把apis.map.qq.com添加进request合法域名 效果 添加封装 /** * 发起网络请求 * @param {string} url * @param {object} params * @return {Promise} */ static request(url, params, method = "GET", type = "json") { console.lo…
当小程序发布新的版本后 ,用户如果之前访问过该小程序,通过已打开的小程序进入(未手动删除),则会检测新版本,提醒用户更新新的版本 话不多说,上代码 App({ onLaunch: function () { // 检查更新 this.autoUpdate() }, autoUpdate: function(){ let _this = this // 获取小程序更新机制的兼容,由于更新的功能基础库要1.9.90以上版本才支持,所以此处要做低版本的兼容处理 if(wx.canIUse('getUp…
跳转到内部链接 这个我们应该都知道,通过wx.navigateTo,wx.redirectTo,wx.swtichTab等小程序内部的方法,可以直接跳转到小程序内部已经注册的(就是在app.json中已经记录的)链接页面. 但是怎么跳转到外部页面呢? 微信小程序中有个这样的东西:web-view,可以帮助跳转,需要注意的是,跳转的url是需要在微信公众平台上面配置业务域名的,否则就会出现这样: 详细内容看文档 跳转到外部页面 1.首先在你需要点击的页面,添加一个bindtap方法,用来触发跳转页…
Q:小程序怎么把页面data里的数据传到另外的页面? 或者小程序怎么吧表单里的数据传到另外的页面?A:1.可以使用url传递数据. 例如在A页面中传递数据,需要注意的是,wx.switchTab中的url不能传参数. wx.navigateTo({url:'../pageB/pageB?name=raymond&gender=male'}).在B页面中接收数据,通过onLoad的option:Page({onLoad:function(option){console.log(option.nam…
await miniProgram.evaluate(() => getApp().clickBanner({ path: "pages/game/home/home", query: { mode: "train" }, scene: 1038, referrerInfo: {} }));…
[需求]实现当手机号已填写和协议已勾选时,“立即登录”按钮变亮,按钮可点击:若有一个不满足,按钮置灰,不可点击:实现获取短信验证码,倒计时提示操作:对不满足要求内容进行toast弹窗提示. <view class="container"> <!--手机号--> <view class="section"> <text class="txt">手机号</text> <input va…
<!--index.wxml--> <view class="container"> <view class="container_content"> <view class="content_time">{{time}}S</view> <view class="content_btn"> <button class="btn_start…
直接看例子吧: WXML:直接看Button,用“data-”(data-total)传值,后台如何获取,继续看下面JS代码. <view class="infothird"> <text class="vartime">{{item.KZSJ}}</text> <button class='buttonpay' bindtap="payfor" data-total='{{item.ZJE}}'>…
upload: function () { let that = this; let {uploadFlag} = that.data; if (that.data.uploadFlag) { return; } that.data.uploadFlag = true; //上传录制的音频 wx.uploadFile({ url: '', filePath: that.data.link, name: 'file', formData: { userInfo: that.data.userInf…