1. 查看Android的webview视图版本:手机链接电脑后在电脑Chrome打开页面chrome://inspect/#devices查看Android的Chrome内核版本

     
     
  2. 下载与该版本相对应的ChromeDriver.exe替换掉Appium目录下的ChromeDriver.exe,路径:C:\Users\miduo\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win\请根据个人安装情况找到文件并替换。
  3. 代码调整:
    实例化Remote时需要添加一个配置:'chromeOptions': {'androidProcess': 'com.tencent.mm:tools'}
desired_caps = {
'platformName': 'Android',
'fastReset': 'false',
'deviceName': "391dda45",
'appPackage': 'com.tencent.mm',
'appActivity': '.ui.LauncherUI',
'fullReset': 'false',
'unicodeKeyboard': 'True',
'resetKeyboard': 'True',
"noReset": True,
"fullReset": False,
"fastReset": False,
'chromeOptions': {
'androidProcess': 'com.tencent.mm:tools'
} # 这句很重要 'chromeOptions': {'androidProcess': 'com.tencent.mm:tools'}
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) …… # 进入微信公众号页面的操作 # 点击链接进入微信公众号之后,需要切换上下文(webview),如果不能理解,则可以把他看成Iframe
print(driver.contexts) #打印查看当前页面有多少webview
driver.switch_to.context("WEBVIEW_com.tencent.mm:tools") # 切换
# 如果切换后存在多个handle,则需要判断当前handle对不对,不对的话需要切换到正确的句柄
while True:
if PageElement("a", "tag").entity(a.driver, True):
break
else:
a.driver.switch_to.window(a.driver.window_handles[-1])
print(driver.page_source) #打印html页面源代码
# 切换后实质上就是Selenium使用操作公众号了(本质就是一个Html),
# 当然如果需要跳回到App中操作,则driver.switch_to.context("NATIVE")切换会默认的视图进行操作。
  1. 微信公众号元素定位,因为使用uiautomatorviewer.bat工具无法定位到微信公众号的页面元素,要进行微信公众号的元素定位,有几种方案:
  • 手机链接电脑后在电脑Chrome打开页面chrome://inspect/#devices并选择公众号的webview点击下方inspect链接,但第一次使用会链接到谷歌,所以需要翻墙才能正常使用
  • 找开发拿页面源文件进行定位。
  • 如果开发无法提供源文件,则使用driver.page_source将源代码在本地生成html文件本地打开。

作者:bilibala_
链接:https://www.jianshu.com/p/04116183a76c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

使用Appium进行微信公众号自动化测试的更多相关文章

  1. appium+java(四)微信公众号自动化测试实践

    前言 随着手机阅读的普遍应用,微信公众号阅读,更为普遍,微信和qq一样,都是基于腾讯自研X5内核,不是google原生webview(其实就是进行了二次定制).实质上也是混合应用的一种,现在很多app ...

  2. 基于APPIUM测试微信公众号的UI自动化测试框架(结合Allure2测试报告框架)

    框架初衷 前两周组内的小伙伴跟我说她现在测试的微信公众号项目(保险)每次上新产品时测试起来很费时,存在大量的重复操作(点点点),手工测试每个产品可能需要半天到一天的时间,复杂的产品需要两天. 由于保险 ...

  3. appium操作微信公众号H5 web页面

    安卓微信公众号的H5页面是webview,一般操作需要切换context. 在执行如下步骤,就能直接像识别native样识别webview 1.代码追加: ChromeOptions options ...

  4. Appium 解决微信公众号、小程序切换 webview 后无法定位元素的问题

    如何切换webview进入小程序请参考https://testerhome.com/topics/12003 脚本思路:进入webview后会存在多个handle同Web页签一样,获取所有的handl ...

  5. 使用Appium 测试微信小程序和微信公众号方法

    由于腾讯系QQ.微信等都是基于腾讯自研X5内核,不是google原生webview,需要打开TBS内核Inspector调试功能才能用Chrome浏览器查看页面元素,并实现Appium自动化测试微信小 ...

  6. py+appium微信公众号自动化(已搞定多个坑)

    最近需要做微信公众号的自动化测试,遇到了不少坑. 微信公众号自动化与app自动化还是有区别的,因为多了不少坑.打开微信x5内核调试的就不说了,百度有. 1.首先,微信公众号有webview,uiaut ...

  7. appium+python自动化-微信公众号webview操作

    前言 上一篇已经解决切换到微信公众号的webview上了,但是定位webview上元素的时候一直提示找不到,打印page_source也找不到页面上的元素,这个问题困扰了一整天,还好最后找到了原因, ...

  8. 微信公众号开发之VS远程调试

    目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...

  9. 快递Api接口 & 微信公众号开发流程

    之前的文章,已经分析过快递Api接口可能被使用的需求及场景:今天呢,简单给大家介绍一下微信公众号中怎么来使用快递Api接口,来完成我们的需求和业务场景. 开发语言:Nodejs,其中用到了Neo4j图 ...

随机推荐

  1. go语言设计模式之visitor

    这个确实没有调通,也要记录一下 visitor.go package visitor import ( "fmt" "io" "os" ) ...

  2. Node.js实现登录注册功能

    使用Node.js + Navicat for mysql实现的登录注册功能 数据库中存在有”user_id,user_name,password,user_img,user_number“字段,其中 ...

  3. 201871010116-祁英红《面向对象程序设计(java)》第八周学习总结

    项目 内容 <面向对象程序设计(java)> https://home.cnblogs.com/u/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.c ...

  4. win7 Adobe flash player 无法在线更新

    1.win7 Adobe flash player 无法在线更新,提示应用程序初始化错误 解决方法: 1.https://www.flash.cn/看一下支持的版本,网上找对应版本离线包下载安装即可 ...

  5. Theory of Storage

    https://www.intelligenteconomist.com/theory-of-storage/ The Theory of Storage describes features obs ...

  6. P4762 [CERC2014]Virus synthesis

    题意 真是道回文自动机好题. 首先考虑答案必定是一个回文串+剩余部分的形式,因此可以建出回文自动机,之后考虑每个长度为偶数的回文串. 对于一个长度为偶数的回文串,设它在回文自动机上对应的节点为\(x\ ...

  7. webpack入门配置步骤详解

    1.初始化 1.npm install webpack webpack-cli webpack-dev-server --g 全局安装必要的第三方插件 2.mkdir config dist src ...

  8. 重磅来袭!Reactive 架构专场四城巡回演讲

    Reactive 究竟是什么?Reactive 对架构设计的影响和冲击,以及给开发方式带来的改变有哪些?为什么阿里巴巴.Pivotal.Facebook 纷纷在生产环境中实践 Reactive? 本次 ...

  9. 来认识一下venus-init——一个让你仅需一个命令开始Java开发的命令行工具

    源代码地址: Github仓库地址 个人网站:个人网站地址 前言 不知道你是否有过这样的经历.不管你是什么岗位,前端也好,后端也罢,想去了解一下Java开发到底是什么样的,它是不是真的跟传说中的一样. ...

  10. CSP-S 爆零记

    抱歉,这么晚才更. 事实是:我都没有去 所以爆零了 QwQ