记录来源:https://testerhome.com/topics/6954
微信设置
用微信打开http://debugx5.qq.com,“信息”--》勾选"是否打开TBS内核Inspector调试功能"
(打开这个,才会显示webview,才能切换)
使用appium编写测试用例
在appium中context的切换时, 没有带上一个关键的androidProcess配置导致的.
他会导致appium识别webview的时候, 把com.tencent.mm:tools的webview识别成com.tencent.mm的webview. 从而导致context切换失败.
正确的用appium测试微信h5的方法如下:js
//关键是加上这段
val options = new ChromeOptions()
options.setExperimentalOption("androidProcess", "com.tencent.mm:tools")
capability.setCapability(ChromeOptions.CAPABILITY, options)
Python
desired_caps['chromeOptions'] = {'androidProcess': 'com.tencent.mm:tools'}
webview切换:
#获取所有的contexts,包括原生和webview名字(微信需要打开x5调试功能)
contexts = driver.contexts
print(contexts)
#杀掉chromedriver进程并重启,要先切换到NATIVE_APP(包括微信端)
#driver.switch_to.context('NATIVE_APP')
#os.popen('taskkill /f /im chromedriver.exe')
#从原生切换到webview,appium需要设置Chromeoption
driver.switch_to.context('WEBVIEW_com.tencent.mm:tools')
Appium自动化测试--使用Chrome调试模式获取App混合应用H5界面元素
学习来源:http://blog.csdn.net/qq_19636353/article/details/53731254腾讯x5内核需要:开启调试模式,http://debugx5.qq.com
手机设置
1.将手机和pc相连,开启手机的调试模式2使用adb devices 查看手机是否连接成功
pc设置
1.在Chrome浏览器输入chrome://inspect/#devices2.Chrome该面显示手机型号、驱动名称和版本、APP需要调试的webview的名称
3.点击inspect就会打开和APP端相同页面
4.如果打开是空白的,需要翻墙或配置电脑hosts文件:
谷歌浏览器调试手机H5页面:
通过pc浏览器打开h5页面,通过firebug、firexpath定位;
chrome://inspect/#devices;
点击inspect,出现空白的解决办法?
C:\Windows\System32\drivers\etc
编辑hosts文件,添加:
61.91.161.217 chrome-devtools-frontend.appspot.com
61.91.161.217 chrometophone.appspot.com
chromeview
appium是通过chrome-port 9515端口进行通信的,驱动安卓手机上的webview;查看手机系统应用Android system webview显示的Chrome版本
下载对应的Chromedriver,并添加到appium的Chromedriver存放路劲:
C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win
不同Chromedriver的驱动对应不同的Chrome:
http://blog.csdn.net/qijingpei/article/details/68925392
Chromedriver下载地址:http://chromedriver.storage.googleapis.com/index.html
操作第二个web-view需求清一下缓存
#os.popen() 方法用于从一个命令打开一个管道。taskkill是用来终止进程的。
通过Python代码,强制杀死qq进程:
os.popen('taskkill /f /im QQ.exe')
switch_to.context('NATIVE_APP')
os.popen('taskkill /f /im chromedriver.exe')
switch_to.context(''WENVIEW_1')
定位元素位置
元素APP
使用uiautomatorviewer
可以通过二次开发自动生成xpath定位。
webview里面的H5
Firefox的Firebug和firexpathweb定位元素总结:http://blog.csdn.net/jojoy_tester/article/details/53453888