博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Appium进行微信公众号自动化测试
阅读量:5291 次
发布时间:2019-06-14

本文共 1775 字,大约阅读时间需要 5 分钟。

  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链接,但第一次使用会链接到谷歌,所以需要FQ才能正常使用
  • 找开发拿页面源文件进行定位。
  • 如果开发无法提供源文件,则使用driver.page_source将源代码在本地生成html文件本地打开。
作者:bilibala_
链接:https://www.jianshu.com/p/04116183a76c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

转载于:https://www.cnblogs.com/peachh/p/9740189.html

你可能感兴趣的文章
Python语法基础之DataFrame
查看>>
Python语法基础之对象(字符串、列表、字典、元组)
查看>>
大白话讲解 BitSet
查看>>
sql语句中where与having的区别
查看>>
Python数据分析入门案例
查看>>
0x7fffffff的意思
查看>>
Java的值传递和引用传递
查看>>
HTML5的服务器EventSource(server-sent event)发送事件
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
检查 chrome 插件是否存在
查看>>
在mac中,npm安装或者卸载失败,提示没有权限
查看>>
155. Min Stack
查看>>
亚稳态的产生机理、消除办法 (可以理解为什么打拍)
查看>>
<每日 1 OJ> -Table
查看>>
<每日 1 OJ> -LeetCode 7. 整数反转
查看>>
<每日 1 OJ> -LeetCode 13 . 罗马数字转正数
查看>>
c语言用指针定义一个类型进行输入输出
查看>>
数字电路基础知识
查看>>
C语言之“字符”与“字符串”之间的区别解析
查看>>
<每日 1 OJ> -24. The Simple Problem
查看>>