多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

使用Appium测试微信小程序 Webview-自动化测试

更新时间:2022-03-31 09:40:07 作者:多测师 浏览:229

  打开调试功能

  通过安卓手机微信打开debugx5.qq.com,或者直接扫下面二维码(微信版本6.1以上)

  勾选【打开TBS内核Inspector调试功能】

  Chrome查看页面元素

  手机连接电脑,查看是否连接成功。如下展示设备号则为连接成功

  进入任意小程序,以【X东】为例,在Chrome浏览器访问chrome://inspect/#devices

  点击inspact,即可查看页面元素

  小程序的进程

  微信有很多的进程,每一个小程序都运行在不同的进程中。

  进入【X东】后,看下当前运行在哪个进程中

  我们可以看到,当前的小程序运行在com.tencent.mm:appbrand0中,记住这个进程,记住啦

  Appium编写测试用例

  最关键的一点,需要添加androidProcess这一项,也就是我们上面的com.tencent.mm:appbrand0

  我用python写一个简单的demo

使用Appium测试微信小程序 Webview-自动化测试

  desired_caps = {

  'platformName': 'Android',

  'fastReset': 'false',

  'deviceName': 'XXXXXX',

  'appPackage': 'com.tencent.mm',

  'appActivity': '.ui.LauncherUI',

  'fullReset': 'false',

  'unicodeKeyboard': 'True',

  'resetKeyboard': 'True',

  'chromeOptions': {

  'androidProcess': 'com.tencent.mm:appbrand0'

  }

  }

  driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

  driver.find_element_by_name("发现").click()

  driver.find_element_by_name("小程序").click()

  driver.find_element_by_name("X东购物").click()

  driver.switch_to.context('WEBVIEW_com.tencent.mm:appbrand0')

  time.sleep(5)

  print(driver.page_source)

  切换Webview失败

  我遇到过一种切换Webview失败的情况,下面贴上appium的报错日志。

  > info: Chromedriver: Changed state to 'stopped'

  > error: Chromedriver: Chromedriver exited unexpectedly with code null, signal SIGTERM

  > warn: Chromedriver for context WEBVIEW_com.tencent.mm:appbrand1 stopped unexpectedly

  > warn: Chromedriver quit unexpectedly, but it wasn't the active context, ignoring

  > error: Chromedriver: Error: A new session could not be created. (Original error: session not created exception

  > from unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"32496.2","isDefault":true},"id":2,"name":"","origin":"https://servicewechat.com"}

  > (Session info: chrome=57.0.2987.132)

  > (Driver info: chromedriver=2.18.343845 (73dd713ba7fbfb73cbb514e62641d8c96a94682a),platform=Windows NT 6.1 SP1 x86_64))

  > at JWProxy.command$ (lib/proxy.js:133:15)

  > at tryCatch (D:\Appium\node_modules\appium\node_modules\appium-chromedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\regenerator\runtime.js:67:40)

  > at GeneratorFunctionPrototype.invoke [as _invoke] (D:\Appium\node_modules\appium\node_modules\appium-chromedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\regenerator\runtime.js:315:22)

  > at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (D:\Appium\node_modules\appium\node_modules\appium-chromedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\regenerator\runtime.js:100:21)

  > at GeneratorFunctionPrototype.invoke (D:\Appium\node_modules\appium\node_modules\appium-chromedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\regenerator\runtime.js:136:37)

  > at bound (domain.js:284:14)

  > at GeneratorFunctionPrototype.runBound (domain.js:297:12)

  > at run (D:\Appium\node_modules\appium\node_modules\appium-chromedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\node_modules\core-js\library\modules\es6.promise.js:89:39)

  > at D:\Appium\node_modules\appium\node_modules\appium-chromedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\node_modules\core-js\library\modules\es6.promise.js:100:28

  > at flush (D:\Appium\node_modules\appium\node_modules\appium-chromedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\node_modules\core-js\library\modules\$.microtask.js:17:13)

  > at process._tickDomainCallback (node.js:381:11)

  > { [Error: A new session could not be created. (Original error: session not created exception

  > from unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"32496.2","isDefault":true},"id":2,"name":"","origin":"https://servicewechat.com"}

  > (Session info: chrome=57.0.2987.132)

  > (Driver info: chromedriver=2.18.343845 (73dd713ba7fbfb73cbb514e62641d8c96a94682a),platform=Windows NT 6.1 SP1 x86_64))]

  > status: 33,

  > value: { message: 'session not created exception\nfrom unknown error: Runtime.executionContextCreated has invalid \'context\': {"auxData":{"frameId":"32496.2","isDefault":true},"id":2,"name":"","origin":"https://servicewechat.com"}\n (Session info: chrome=57.0.2987.132)\n (Driver info: chromedriver=2.18.343845 (73dd713ba7fbfb73cbb514e62641d8c96a94682a),platform=Windows NT 6.1 SP1 x86_64)' },

  注意最后那一段的chrome和chromedriver的版本

  查看对应表可知,两者版本不对应,需要替换chromedriver

  将Appium的chromedriver替换为相应版本后,即可成功切换。

  以上内容为大家介绍了自动化测试中的使用Appium测试微信小程序 Webview,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部