Android WebView测试

混合应用中包含 Web 视图的应用,在 Appium 介绍及环境安装 中介绍了appium支持WebView测试,本文将分享Android 混合页面的测试方法。

WebView测试环境准备

手机端

  • 被测浏览器:

    iOS:Safari

    Android:Chrome,Chromium,Browser (自带浏览器)

PC端

查看手机浏览器版本

adb shell pm list package | grep webview
adb shell pm dump com.android.browser | grep version
adb shell pm dump com.android.chrome | grep version
adb shell pm dump com.android.webview | grep version

查看手机browser和chrome版本

C:\Users\10287>adb shell pm list packages|findstr browser
package:com.android.browser

C:\Users\10287>adb shell pm dump com.android.browser | findstr version
      versionCode=22 targetSdk=22
      versionName=5.1.1-500200323

C:\Users\10287>adb shell pm dump com.android.chrome | findstr version
      versionCode=398713200 targetSdk=29
      versionName=80.0.3987.132
            enabled=true targetSdkVersion=29 versionCode=398713200

查看手机webview版本

在手机上设置中查看 Android System WebView应用版本

客户端代码

  • desirecapability

    • “chromedriverExecutable" = "指定driver地址”
    • “browser” = “Browser” 或者“browser" = ”Chrome“

WebView元素定位

1、连接手机/模拟器

手机打开google浏览器,并进入百度网页:https://m.baidu.com

2、Chrome浏览器输入地址: chrome://inspect

可以看到电脑连接的设备名以及打开的手机浏览器

点击inspect

这样就可以定位到浏览器元素。

Android混合页面测试

文档:https://developers.google.com/web/tools/chrome-devtools/remote-debugging/webviews?hl=zh-cn

测试步骤:

  1. 打开ApiDemos
  2. 进入WebView页面
  3. 点击"i am a link"
  4. 退出应用

下载ApiDemos-debug.apk

from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy

class TestBrowser():
    def setup(self):
        desired_caps = {
        'platformName': 'android',        
        'platformVersion': '10',
        'appPackage': 'io.appium.android.apis',
        'appActivity': 'io.appium.android.apis.ApiDemos',        
        'deviceName': 'CUYDU19626004019',
        'noReset': 'true',
        'chromedriverExecutable': 'D:/testing_tools/chromedriver85/chromedriver.exe'
        }
        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
        self.driver.implicitly_wait(5)
        
    def teardown(self):        
        self.driver.quit()
        
    def test_webview(self):
        self.driver.find_element_by_accessibility_id("Views").click()
        webview ="WebView"
        print(self.driver.contexts)
        self.driver.find_element_by_android_uiautomator('new UiScrollable(new UiSelector().'
                                                        'scrollable(true).instance(0)).'
                                                        f'scrollIntoView(new UiSelector().text("{webview}")'
                                                        '.instance(0));').click()

        print(self.driver.contexts)
        self.driver.switch_to.context(self.driver.contexts[1])
        print(self.driver.current_context)
        self.driver.find_element(MobileBy.ID, 'i am a link').click()
--THE END--

系列文章

1、Appium 介绍及环境安装
2、selenium/appium 等待方式介绍
3、App控件定位:Android 控件介绍及元素定位方法
4、Appium元素定位(一)
5、Appium元素定位(二):UiAutomator定位
6、Appium控件交互
7、Android WebView测试
8、AppCrawler自动遍历测试
9、自动遍历测试之Monkey工具
10、App自动化测试工具Uiautomator2
11、App自动化测试工具Airtest
12、Android手机管理平台搭建:STF和atxserver2
13、Windows上实现iOS APP自动化测试:tidevice + WDA + facebook-wda / appium
14、iOS APP自动化:predicate定位
15、iOS APP自动化:class chain定位方法
16、使用facebook-wda进行iOS APP自动化测试


欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值