查看Android的webview视图版本:手机链接电脑后在电脑Chrome打开页面chrome://inspect/#devices查看Android的Chrome内核版本     下载与该版本相对应的ChromeDriver.exe替换掉Appium目录下的ChromeDriver.exe,路径:C:\Users\miduo\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules…
前言 随着手机阅读的普遍应用,微信公众号阅读,更为普遍,微信和qq一样,都是基于腾讯自研X5内核,不是google原生webview(其实就是进行了二次定制).实质上也是混合应用的一种,现在很多app产品也开始流行采用X5内核作为其内嵌web浏览服务,所以掌握X5内核的混合应用自动化也是重中之重的一种技能 X5内核应用自动化方式和普通混合应用有非常多的差异,接下来以微信公众号举例介绍怎么来开展X5内核的自动化 准备工作 1.java-client 3.4.16依赖包 2.微信应用版本7.0.0…
框架初衷 前两周组内的小伙伴跟我说她现在测试的微信公众号项目(保险)每次上新产品时测试起来很费时,存在大量的重复操作(点点点),手工测试每个产品可能需要半天到一天的时间,复杂的产品需要两天. 由于保险下单的过程中字段比较多,输入费劲的同时测试用例也很多(不同年龄段.工种.有无社保等),且!每个产品的页面都有部分差异! 问我能否基于UI自动化提高她测试新产品的测试速度,同时用于上线时生产的验证. 因为我写过微信公众号页面的UI监控脚本,也尝试过基于appium的多机并发测试,于是我就想,能否搭建一…
安卓微信公众号的H5页面是webview,一般操作需要切换context. 在执行如下步骤,就能直接像识别native样识别webview 1.代码追加: ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("androidProcess", "com.tencent.mm:tools"); capabilities.setCapability(ChromeOption…
如何切换webview进入小程序请参考https://testerhome.com/topics/12003 脚本思路:进入webview后会存在多个handle同Web页签一样,获取所有的handle,然后在遍历所有的handle,通过switch_to_window进行handle切换,当某个handle可以定位到我们需要定位的元素时,然后我们就可以进行之后的自动化操作了! <code style="font-family:Menlo, Monaco, Consolas, 'Couri…
由于腾讯系QQ.微信等都是基于腾讯自研X5内核,不是google原生webview,需要打开TBS内核Inspector调试功能才能用Chrome浏览器查看页面元素,并实现Appium自动化测试微信小程序和微信公众号. 前提条件Appium环境搭建,这里不多说了,可查阅Appium环境搭建文章. 因夜神等模拟器是intel的X86架构,很多app安装不了,比如微信.qq等(虽然说可以通过安装arm解释器来解决该问题,但是进行X5内核调试的话也会出现问题),建议最好是一台真实的手机来做. webv…
最近需要做微信公众号的自动化测试,遇到了不少坑. 微信公众号自动化与app自动化还是有区别的,因为多了不少坑.打开微信x5内核调试的就不说了,百度有. 1.首先,微信公众号有webview,uiautomatorviewer定位不了webview,代码也切换不了webview. 贴个事发主要自动化代码(这段基本不用动): 解决方法第一个必要条件:chromeoptions 我第一个弄完还是无法切换webview,而appium报错日志: error: Chromedriver: Error: A…
前言 上一篇已经解决切换到微信公众号的webview上了,但是定位webview上元素的时候一直提示找不到,打印page_source也找不到页面上的元素,这个问题困扰了一整天,还好最后找到了原因, 此处埋了一个深坑,需要再次切换handle 切换到webview 1.上一篇已经详细介绍如何切换到微信公众号的webview上,这里就不重复说了,贴下代码: # 切换到webview time.sleep(2) print(driver.contexts) driver.switch_to.cont…
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微信服务器将接收到的消息post到用户接入时填写的url中,在url处理程序中,首先判断消息的合法性,判断成功后根据消息体的内容做相应的相应.原理很容易理解,接触过socket的可能理解起来更容易. 其实微信开发并不是很麻烦或者很难,官方给的文档也还算过的去(至…
之前的文章,已经分析过快递Api接口可能被使用的需求及场景:今天呢,简单给大家介绍一下微信公众号中怎么来使用快递Api接口,来完成我们的需求和业务场景. 开发语言:Nodejs,其中用到了Neo4j图形数据库 准备工作 首先,需要到微信公众平台注册账号 选择账号类型界面如下: 选择订阅号或服务器都可以,本文是使用订阅号进行展开描述.开发微信小程序的选择小程序即可,不过暂时不对个人开发,只能呵呵了. 选择之后,根据注册流程,一步步填写验证即可. 注册完成后,到微信公众平台登陆即可. 登陆成功,如下…
现在主流上都用php写微信公众号后台,其实作为后端语言之一的java也可以实现. 这篇文章将对验证服务器地址这一步做出实现. 参考资料:1.慕课网-<初识java微信公众号开发>,2.微信公众号开发者文档http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html 如图,开发者在点击提交后,微信服务器向公众号后台服务器发送了四个参数,咱们把这四个参数封装成一个类,就叫Signature吧 代码都是myeclipse自动…
在测试环境下开发完成代表着你离正式上线的目标不远了.接下来本章就主要谈一谈把测试环境的公众号升级为正式的公众号. 服务器和域名 目前为止我们只是在自己的电脑上完成了测试环境.真实的线上环境当然需要自己购买服务器和域名了.卤煮买的是阿里云的ecs云服务器,配置是单核1G内存,硬盘是40g.对于卤煮这样自娱自乐的小项目,六十多块钱一个月的服务器都算太贵了.域名的话非常便宜,不过正式的域名需要备案,比较麻烦.卤煮是在某宝上购买的一年的备案域名,虽然名字很丑,但无关紧要,在微信中域名对于用户来说是没有任…
微信的网页授权指的是在微信公众号中访问第三方网页时获取用户地理.个人等信息的权限.对于开发了自己的网页app应用时,获取个人的信息非常重要.上篇博客讲到了注册时可以获取用户的信息,很多人会问为什么还需要网页授权这种方式去获取呢,直接从数据库中读取不就可以了吗?这样的做的原因是服务器会话时间终究是有限的,关注后我们设置的会话一般在半个月左右,半个月后就需要重新生成会话,而这时就需要网页授权的openid帮忙了.况且,用户的信息也是会刷新的,虽然这种情况很少发生,但是我们至少应该确保信息是有一定的更…
微信公众号有个规则,一旦开启了开发者模式,其他的常规功能就都必须通过接口调用完成.比如说自定义菜单功能,必须通过发送post请求的方式生成.本章就通过关注到取消关注的整个过程来谈一谈nodejs是怎么样与微信交互的.这些功能的入口就是你在测试公众号里面填写的URL(以下用/login/wechat代替). 事件交互 扫码关注微信公众号后,微信会调用你的接口/login/wechat,并且附带一段xml信息,首先你需要获取一些签名,通过加密.排序比对是否与你填写的TOKEN一致,如果一致则进行xm…
上篇说完了如何接入微信公众号,本文说一下微信公众号的最基本功能:普通消息的接收和回复.说到普通消息,那么什么是微信公众号所定义的普通消息呢,微信开发者文档中提到的接收的普通消息包括如下几类: 1.文本消息2.图片消息3.语音消息4.视频消息5.小视频消息6.地理位置消息7.链接消息(被动回复的消息) 被动回复的普通消息包括: 1.回复文本消息2.回复图片消息3.回复语音消息4.回复视频消息5.回复音乐消息6.回复图文消息 其实接收消息和被动回复消息这两个动作是不分家的,这本来就是一个交互场景,一…
本文为原创,原始地址为http://www.cnblogs.com/fengzheng/p/5027630.html 上一篇说了微信开发的准备工作,准备工作完成之后,就要开始步入正题了.其实微信公众号开发,说白了,就是要构造和发送http或https的请求组成,并根据请求的返回数据做逻辑处理. 今天就来说一说微信开发第一步,公众号接入以及access_token的管理. 微信公众号接入 在微信公众号开发手册上,关于公众号接入这一节内容还是写的比较详细的,文档中说接入公众号需要3个步骤,分别是:…
最近重新研究了微信公众号的高级接口,原来也利用C#或JAVA写过微信公众号,主要是消息的基础接口. 由于当时不知道微信公众号可以申请测试公众号,微信测试公众号基本上没有任何限制,对于开发来说是一个不错的选择, 以后如需要实现自己的公众号只需要认证或申请服务号,把代码中的APPID和APPSECERT进行替换就OK了. 本次主要是用NodeJS为进行实现,为什么换成NodeJS呢而不是以前已处理好的C#或JAVA呢? 主要是想用一个免费的公共云服务进行部署应用(具体https://leanclou…
微信公众号,仿照企业号的思路,增加了标签管理的功能,对关注的粉丝可以设置标签管理,实现更加方便的分组管理功能.开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建.查询.修改.删除等操作,也可以对用户进行打标签.取消标签等操作.本篇随笔主要介绍如何利用C#对公众号这个较新的特性进行封装,实现对标签的管理功能. 1.标签功能介绍 1)标签功能替代分组功能,支持多维度定义用户属性 运营者可登录公众平台后台,点击左侧菜单“用户管理”后管理已关注用户,点击其中一个用户右侧的“标签”小角标可弹…
一点说明: nodejs 微信api 扩展,集成大部分功能. 案例 https://github.com/leiroc/node-wxeasy-example 上传example中文件到服务器 ,然后 npm install 成功 https://github.com/leiroc/node-wxeasy-example BUG and NEWS 增加客户功能 增加模板消息 增加扫描带参数二维码 增加 access_token_apiurl 参数,从接口服务器获取 access_token 避免…
1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信openid的微信用户集合) 2.基本步骤 前提: 已经有认证的公众号或者测试公众账号 发送消息步骤: 发送一个请求微信去获取access_token 发送一个请求去请求微信发送消息 相关微信接口的信息可以查看:http://www.cnblogs.com/0201zcr/p/5866296.html 有测试账号的申请 + 获取access_token和发送微信消息的url和相关的参数需求.各个参数的意义等…
注:本文提到的代码示例下载地址>如何用Azure Web App Services接入微信公众号 如何用Azure Web App Services接入微信公众号 简介 此示例演示如何创建Azure Web App Services.开发.部暑.接入微信公众号. 先决条件 Microsoft Visual Studio 2015 运行示例 • 登录http://portal.azure.com,创建Microsoft Azure 应用程序服务 • 设置FTP部署凭据 • 设置Web.config…
我在阿里云租了一个云服务器,然后想把这个作为我的微信公众号的后台,启用微信公众号开发者需要正确的响应微信服务器的Token验证,为此把这个验证的Python代码贴出来,只要在服务器上运行这段代码,注意把Token的值改成你自己的值,然后在微信后台填对你的服务器的公网IP,提交就可以通过验证了 #coding=utf-8 html = '''True ''' import socket import signal import errno import re import os import ha…
http://www.cnblogs.com/zskbll/p/4139039.html C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) 距离上一篇博文已经半个月了,本来打算每两天更新一次的,但可怜苦逼码农无日无夜的加班.第一篇博文发表后,博文视点的编辑就找到我,问我想不想出版这个系列,我当时瞬间就想到了王大锤的独白,想想真的是有点小激动,后面按照那边的要求,提交了申请书,也提交了目录,可惜…
http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微…
http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) 前几天决定写个微信公众平台开发系列,在发布第一篇博文后,收到了很多园友的反馈和建议,在这里感谢大家的支持,我会坚持写完这个系列,希望能帮助更多的小伙伴.特别要感谢下@ZIP,是他的一个提醒才有了这篇博文.也希望更多的小伙伴能把你的想法反馈给我. 上一…
转自 http://mp.weixin.qq.com/s/xNnKAeLv6sO0T-IvP2AUlQ          JavaScript微信公众号 一.JSONP的诞生 首先,因为ajax无法跨域,然后开发者就有所思考 其次,开发者发现, <script>标签的src属性是可以跨域的 把跨域服务器写成 调用本地的函数 ,回调数据回来不就好了? json刚好被js支持(object) 调用跨域服务器上动态生成的js格式文件(不管是什么类型的地址,最终生成的返回值都是一段js代码) 这种获取…
服务器配置Linux+Nginx+PHP5.5+mysql index方法配置微信的关注回复.菜单事件.多客服.自动回复等 public function actionIndex() { if (isset($_GET["echostr"]) && !empty($_GET["echostr"])) { $this->valid(); } else { $postStr = isset($GLOBALS["HTTP_RAW_POST_…
经常碰到有同学对.NET跨平台存在各种疑惑和误解,原因是什么呢?当然我是知道.NET的跨平台不是问题,而且微软2014年的努力可圈可点,而且还有很多人对.NET的前景感到困惑.春节期间突然明白了,这就是皮裤原理呀,微信红包的火爆让我想起很有必要运营一个微信公众号:dotNET跨平台的话题,让开源圈了解.NET,才能为大家建立更好.更多的社区. 初二开始,忙活了几天,目前已经有525位粉丝.发布了3篇文章: .NET 基金会及 Roslyn 编译器 ASP.NET 5开源及 .NET Core F…
由于卤煮本人是做前端开发的,所以在做公众号过程中基本上没有遇到前端问题,在这方面花的时间是最少的.加上用了mui框架(纯css界面)和自己积累的代码,很快地开发出了界面来.接着是后台开发.卤煮选的是nodejs,作为中小型的项目开发,nodejs是前端开发人员的首选.然后是选了一些开发包,帮助快速上手.express,inspector,mysql等.卤煮不打算做nodejs教程,网上有很多.假设这些你都已经做好了,也就是说首先,你保证你已经有一份写好了的程序,并且通过本地浏览器测试.然后再开始…
前言 大概是一个月前,自己用业余时间做了一个微信公众号.微信开发,尤其是对后台不熟悉的人来说显得尤其困难.首先要克服的是后台语言(nodejs)的一些不熟悉困难,其次,也是最大的一点困难是在跟微信交互过程.借助各种工具和几位朋友的帮助,总算把各种困难解决,并且在自己计划的时间内建立起来公众号.第一次个人独立完成了一个网站的开发,对于自己的知识提升不少.微信公众号现在是html5应用的一个重要平台,许许多多的同行都陆续加入到这个行列.接下来一个月打算写一些我个人在走这条路的心得,每一章结尾都会把参…