目录

  • 1. 手机浏览器自动化前提
    • 1.1 安装chromedriver
    • 1.2 安装对chromedriver版本
    • 1.3 配置capability
    • 1.4 设置chromedriver相关配置
    • 1.5 使用浏览器的inspect工具远程调试
  • 2. 手机浏览器测试代码python版本

1. 手机浏览器自动化前提

五大前提

  1. 安装chromedriver
  2. 安装对chromedriver版本
  3. 配置capability
  4. 设置chromedriver相关配置
  5. 使用浏览器的inspect工具远程调试

1.1 安装chromedriver

帖子:chromedriver下载地址与webview自动化关键代码

在以下文章中有说明,可以用于参考:
【App自动化测试】(十四)Android WebView测试方法中的 2.3.1 前提一:chromedriver安装

1.2 安装对chromedriver版本

在以下文章中有说明,可以用于参考:
【App自动化测试】(十四)Android WebView测试方法中的 2.3.2 前提二:chromedriver版本选择正确

1.3 配置capability

需要配置的capability参数

  1. browserName:chrome(新版本)/ browser(老版本)

注意:还可使用标准的appPackageappActivity,写明浏览器的包名和activity的名字。但是使用browserName是最简单的

  1. chromedriverExecutableDir:指定 chromedriver 可执行文件集合的目录

chromedriverExecutableDir的示例图:可使用不同名字的后缀进行chromedriver的版本区分

  1. showChromedriverLog:让appium 日志展示 chromedriver 的日志方便排查

1.4 设置chromedriver相关配置

appium chromedriver 自动发现机制中常用的appium capability参数参数:

  • chromedriverExecutableDir: 指定 chromedriver 可执行文件集合的目录

    • 将可用的chromedriver放在此目录下,当appium发现此配置项后,会去目录中寻找合适的chromedriver。
  • chromedriverChromeMappingFile: 允许显式指定版本对应关系
    • 强行指定一个版本的chromedriver去测特定的webview版本
  • showChromedriverLog: 让appium 日志展示 chromedriver 的日志方便排查

appium capability参数设置 ——python:

def setup(self):desired_caps = {"platformName":"Android","deviceName":"emulator-5554","appPackage": "com.example.android.apis","appActivity":".ApiDemos","chromedriverExecutableDir":"E:\chromedriver_webview_test","chromedriverChromeMappingFile":"E:\chromedriver_webview_test\mapping.json","showChromedriverLog":True}self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)# 使用隐式等待self.driver.implicitly_wait(10)

1.5 使用浏览器的inspect工具远程调试

说明:

练习的时候使用了三款模拟器:Avd Android6.0、Avd Android7.0、MUMU.
Avd Android6.0、Avd Android7.0在使用edge inspect远程调试的时候,出现解析混乱,dom无法正常加载的情况。不知道是不是因为webview版本较低导致的。MUMU模拟器则正常。

2. 手机浏览器测试代码python版本

"""
模拟器:MUMU
浏览器:MUMU自带浏览器
备注:
使用脚本访问百度并进行搜索的话会导致无法打开网址;但手动访问并搜索正常
相关问题解释帖子:https://ceshiren.com/t/topic/16195/4
"""from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWaitclass TestBrowser:def setup_class(self):desired_caps = {}desired_caps['platformName'] = 'Android'desired_caps['platformVersion'] = '6.0'desired_caps['deviceName'] = '127.0.0.1:7555'#python appium client 2.x 会默认使用w3c,因此此处使用chromeOptions参数吧w3cdesired_caps['chromeOptions'] = {'w3c': False}#方式一:desired_caps['browserName']= 'browser'#方式二:#还可使用标准的`appPackage`和`appActivity`,写明浏览器的包名和activity的名字。#desired_caps['appPackage'] = 'com.android.browser'#desired_caps['appActivity'] = 'com.android.browser.BrowserActivity'#设置chromedriver所在路径desired_caps['chromedriverExecutableDir']='E:\\chromedriver_webview_test'#开启chromedriverlogdesired_caps['showChromedriverLog']=Truedesired_caps['noReset'] = 'true'self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)# 使用隐式等待self.driver.implicitly_wait(10)def teardown(self):self.driver.quit()def test_browser(self):self.driver.get('https://www.sogou.com/')#使用方式二`appPackage`和`appActivity`话,需要切换上下文,要不然会报错#print(self.driver.contexts)#WebDriverWait(self.driver, 5).until(lambda driver: len(self.driver.contexts) > 1)#self.driver.switch_to.context('WEBVIEW_com.android.browser')self.driver.find_element(By.ID,'keyword').click()self.driver.find_element(By.ID,'keyword').send_keys("webview")self.driver.find_element(By.CLASS_NAME,'qbtn').click()assert_text=self.driver.find_element(By.XPATH,'//*[@class="vrResult"]//a/em').textassert assert_text=="WebView"

【App自动化测试】(十五)手机浏览器(webview)自动化测试相关推荐

  1. Android 天气APP(十五)增加城市搜索、历史搜索记录

    上一篇:Android 天气APP(十四)修复UI显示异常.优化业务代码逻辑.增加详情天气显示 添加城市 新版------------------- 一.推荐城市数据 二.推荐城市item布局和适配器 ...

  2. 新版手机浏览器_Firefox手机浏览器app下载安装_Firefox手机浏览器软件最新版免费下载...

    Firefox移动浏览器是一个熟悉的浏览器应用程序. PC端的Firefox浏览器很受公众欢迎. 现在,Firefox移动浏览器仍在移动侧,可为用户提供方便快捷的Web浏览体验. 如果您喜欢,请尝试! ...

  3. php通过agent判断app,通过userAgent判断手机浏览器类型 – 好饱的博客 – 程序员博客...

    我们可以通过userAgent来判断,比如检测某些关键字,例如:AppleWebKit*****Mobile或AppleWebKit,需要注意的是有些浏览器的userAgent中并不包含AppleWe ...

  4. 腾讯QQ手机浏览器内核开放

    腾讯QQ手机浏览器X5内核面向移动App开放,为内置浏览服务的APP开发者提供加速和安全解决方案.据悉, 腾讯X5浏览服务由X5内核和相关云服务组成,基于Webkit优化和X5内核包含的web引擎技术 ...

  5. [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  6. Android 天气APP(十四)修复UI显示异常、优化业务代码逻辑、增加详情天气显示

    上一篇:Android 天气APP(十三)仿微信弹窗(右上角加号点击弹窗效果).自定义背景图片.UI优化调整 添加管理城市 新版------------------- 一.添加管理城市页面 二.沉浸式 ...

  7. 混合App WebView自动化测试

     大家从头看完配置,不一定你的问题在webview配置,有可能出现在了驱动,还有一个重要的点,手机不需要下载谷歌浏览器,只是需要配置appium的chromedriver驱动版本和Android Sy ...

  8. 盘点五个干净、简洁、实用的手机浏览器app软件

    一.X浏览器 用过的都说X浏览器的广告拦截很强悍 大小:0.8M,无开屏页,只有安卓版本. 用过 Chrome 的 都说X浏览器是好的备胎. 无新闻,无推送,无后台,不足1M却小而强大,给你淋漓尽致的 ...

  9. LinuxGUI自动化测试框架搭建(十五)-截图功能screenShort.py封装和调用

    (十五)-截图功能screenShort.py封装和调用 1 实现目的 2 测试需求 3 需求分析 4 详细设计 4.1 创建脚本 4.2 截图名称命名规则 4.3 脚本设计 5 创建截图保存目录 6 ...

最新文章

  1. 不愧是摸鱼高手Python matplotlib 绘制频谱图都会,能怪老板不管
  2. Android Studio相见恨晚的操作锦集
  3. 2017.8.31 机器学习各种算法
  4. 从C++转向最受欢迎的Rust语言
  5. 【GISER Painter】矢量切片(Vector tile)
  6. java打包维护_java打包详解
  7. 【C++入门】C++多态
  8. ESP8266的Arduino IDE下载和TTL下载
  9. Fiddler中文乱码
  10. 【JavaScript】模块化规范
  11. 使用postman发送post请求,header设置问题
  12. Java(实验四)Java标准类库-将一个字符串中的小写字母变成大写字母,并将大写字母变成小写字母
  13. python所有for循环语句都可以用while改写_Python while循环
  14. 【hdu4609】 3-idiots FFT
  15. 如何创建苹果开发者个人号账号P8证书
  16. 15版计算机应用基础知识整理,[电脑基础知识]计算机应用基础.ppt
  17. windows操作系统深度清理垃圾脚本
  18. c语言 获取文件修改时间,C语言中用于修改文件的存取时间的函数使用
  19. 修改Android模拟器中System目录的内容(framework.jar)
  20. 专家鼓励住房、汽车等大宗商品消费

热门文章

  1. 基于深度学习的人脸表情识别开发
  2. 物联网传感技术——传感器的一般特性
  3. uni-app关于小程序及app端第三方微信登陆问题(app端如何取得code值)
  4. Properties.getProperty
  5. b mino为什么退出block_当年GAI被大半个说唱圈diss的时候,只有他们挺了一把…
  6. win10 安装 lapack + blas
  7. 03Cadence Allegro插入汉字丝印
  8. 服务器下查看硬件配置,查询服务器基本硬件配置信息
  9. uniapp 离线打包 添加文件读写权限
  10. 获取apt离线包方式