使用网页调试时的教学与注意事项。
v2.0.0-beta开始,使用网页调试时,需确保:
java
webView.setWebContentsDebuggingEnabled(true);
iOS网页调试webkit协议接收器在持续维护中,可以前往?这里?了解更多。
使用切换WebView相关操作注意事项与教学。
v2.0.0-beta开始,切换WebView时,需确保:
java
webView.setWebContentsDebuggingEnabled(true);
v2.0.0-beta开始,Sonic会自动匹配并下载WebView对应Chrome版本的ChromeDriver,能兼容大概80-85%左右的版本。
但是部分旧Chrome版本或M1版本的缺失,可能造成自动下载失败,这时我们需要手动添加chromeDriver文件到Agent的webview目录下。 例:被测WebView的Chrome协议版本为77.0.3865.10,我们需将对应版本的chromeDriver重命名为
Macosx or Linux:
bash
77.0.3865.10_chromedriver
Windows:
bash
77.0.3865.10_chromedriver.exe
使用切换WebView页面时,有AndroidProcess可选项,一般默认使用包名对应的process,但是如果WebView放在多进程(例如微信H5),则会切换失败。这时需要我们指定process。
如果您的开发提供了?AndroidManifest.xml?,以?org.sonic.test?为例:
xml
<activity
android:name=".Hello"
android:process=":helloworld" />
那么AndroidProcess为?org.sonic.test:helloworld
如果App为第三方App或者开发不能提供AndroidManifest.xml,我们也可以手动查找。以?com.android.browser?为例(将 com.android.browser 替换为您的被测应用包名):
Windows:
bash
adb shell ps | findstr com.android.browser
Macosx or Linux:
bash
adb shell ps | grep com.android.browser
你会获得类似输出
bash
u0_a90 8907 517 2321912 340180 0 0 S com.android.browser
u0_a90 9252 517 2261048 293056 0 0 S com.android.browser:swan0
一般地,一个WebView进程只有一个页面,但是也会有多个页面共用的情况,就像我们的浏览器会有多个Tab的场景。这时我们切换WebView之后,默认进入的是第一个Tab窗口,如果不是我们需要测试的窗口,则需要我们切换。
以微信H5为例:
控件定位以及操作都是基于?Selenium?框架进行UI自动化,定位教程与相关知识不再此处详细教学了。
webView.setWebContentsDebuggingEnabled(true);
需要先切换WebView,操作路径:
?
?
1)安卓端进行任意H5页面的操作;
2)用以下指令进行探测:
格式:
adb shell ps | findstr 包名
如:
adb shell ps | findstr com.XXX
(如果无效,获取不到数据,请确保已在安卓端进行了任意H5页面的操作。
尝试:adb shell ps | findstr com.android.browser
或者:adb shell ps | findstr browser)
获得以下内容:
u0_a112 ? ? ?10511 ? 750 2359308 445880 SyS_epoll_wait ? ? ?0 S com.XXXXXX:webview
u0_a112 ? ? ?17137 ? 750 2253508 457392 SyS_epoll_wait ? ? ?0 S com.XXXXXX
u0_a112 ? ? ?17306 ? 750 2150384 455660 SyS_epoll_wait ? ? ?0 S com.XXXXXX:upload
u0_a112 ? ? ?19224 ? 750 2078528 366160 SyS_epoll_wait ? ? ?0 S com.XXXXXX:map
u0_a112 ? ? ?20811 ? 750 2132876 389976 SyS_epoll_wait ? ? ?0 S com.XXXXXX:takeplugin
u0_a112 ? ? ?21091 ? 750 2187772 417244 SyS_epoll_wait ? ? ?0 S com.XXXXXX:allplugin
com.XXXXXX:webview 就是进程名
?