appium 处理webview】的更多相关文章

前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must be >= 58.0.3029.0(Driver info: chromedriver=2.30.477700 ) 运行环境:android 7.0appium 1.7.1appium里面chromedriver 2.28webview版本 57.0 遇到问题 1.当执行switch_to.conte…
WebView的测试:主要作用在混合(Hybrid)的应用 * 一部分是原生界面和代码,而另一部分是内嵌网页 * 比如微信.支付宝 * 内嵌了一个浏览器内核,由浏览器内核实现的 安卓应用中的内嵌的展示网页内容的模块,我们称之为webview 准备工作: app修改编译  ==== 需要添加webview调用   ----  对webview对象加入setWebContentsDebuggingEnable的调用 直接让开发人员在下面这段代码中加入一句代码: protected void onCr…
Appium 微信 webview 的自动化技术   最近好多人问微信webview自动化的事情, 碰巧我也在追微信webview的自动化和性能分析方法. 先发出来一点我的进展给大家参考下. 此方法用于Android平台, iOS请自行解决 微信的设置 用微信打开debugx5.qq.com, 这是个微信的x5内核调试页面. 你可以在任何聊天窗口内输入这个网址. 并打开它. 勾选”是否打开TBS内核Inspector调试功能” 使用ChromeDriver编写测试用例 首先安装ChromeDri…
折腾了一段时间,无论是模拟器还是真机,driver.contexts都只有NATIVE_APP,无奈放弃切换webview,直接查找定位元素 from time import sleep import pytestfrom appium import webdriver class TestWebview: def setup(self): caps = {} caps["platformName"] = "Android" caps["platformV…
在App开发过程中,很容易用到第三方的WebView控件,这个属于移动端混合型App.在我们做自动化测试的过程中,就要对这种情况进行处理,最通用的办法就是先将appium切换到webview模式然后按查找web元素的方法对WebView里面的元素进行操作即可.具体实施方法,可以参考:http://www.tuicool.com/articles/bIBRZze 可是也有很多情况,如新浪微博第三方授权登录页面(如图一),这个嵌入到App中的第三方WebView,在查上下文信息的时候,找不到对应的W…
安卓app里面的网页,基本上都是使用手机系统上的webview 去显示的. 安卓 webview 可以看成是 手机上的 chrome 浏览器精简版. appium desktop 里面内置了 用于 webview 自动化的 chromedriver 手机里webview也有一个版本 这样可能会出现appium desktop里面的 chromedriver 与手机里面的不匹配问题 selenium.common.exceptions.WebDriverException: Message: An…
通常情况下我们都是通过Android自带的tools下的UI automator viewer来获取控件或元素的xpath.class.id等来直接进行定位 如下面的“用户登录”按钮: 但是有一些并不能通过UI automator viewer直接查看到,因为中间有一些是通过html5实现的,这时通过UI automator viewer看到的就是一张图片提示是网页视图: 那如何获取到网页视图中的控件的定位呢? 1.确定自己的adb是开着的 2.手机打开USB调试 3.手机切换到webview界…
问题: 在用robot写手机淘宝app的自动化时,打开手机淘宝后,点击天猫国际,跳转到天猫国际页面,天猫国际页面是H5, 需要切换到对应的webview,切换到webview后,点击美妆菜单,跳转到美妆页面,美妆页面也是H5, 与天猫国际页面的webview一样,如果需要在webview里滑动页面,例如向下滑动到某个元素出现在屏幕上,直接在webview中使用swipe是不行的, 因为swipe只能在NATIVE_APP中滑动,不能在webview中执行. 解决: 在美妆页面中后,先切换回NAT…
问题: 在用robot写手机淘宝app的自动化时,打开手机淘宝后,点击天猫国际,跳转到天猫国际页面,天猫国际页面是H5, 需要切换到对应的webview,切换到webview后,点击美妆菜单,跳转到美妆页面,美妆页面也是H5, 与天猫国际页面的webview一样,此时点击美妆页面的元素,提示找不到元素,用get source获取美妆页面源码, 获取到的源码是第一个天猫国际页面的源码,所以在美妆页面执行操作找不到元素. 解决: 在天猫国际页面点击美妆菜单后,先切换回NATIVE_APP,再重新切换…
前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must be >= 58.0.3029.0 (Driver info: chromedriver=2.30.477700 ) 运行环境: android 7.0 appium 1.7.1 appium里面chromedriver 2.28 webview版本 57.0 遇到问题 1.当执行switch_to.…
背景 移动应用可以粗分为三种:原生应用(native app), 网页应用(web app,或HTML5 app),以及它们的混血儿--混合模式移动应用(hybrid app). 什么是Hybrid Mobile App Hybrid app从外观上来看是一个native app,实则只有一个UIWebView,里面访问的是一个web app,如新闻类和视频类的应用普遍采取该策略:native的框架加上web的内容.不同于native app需要针对不同的平台使用不同的开发语言(如使用Objec…
webvie的测试 混合(Hybrid)应用 一部分是原生界面和代码,而一部分是内嵌网页 比如微信.支付宝 内嵌了一个浏览器内核,由浏览器内核实现的 安卓应用中的内嵌的展示网页内容的模块,我们称之为webview 对webview对象加入setWebContentsDebuggingEnable的调用 webview的内容不依赖所在app,只是打开一个URL,直接用chrome浏览器打开对应的网页,使用手机模式 Appium自动化webview,Appium中把所有的界面环境称之为context…
导读 Appium这个听起来既生疏也熟悉的自动化测试工具,比起原生的UiAutomator可能是异常的不起眼,可是却是有自身独当一面的能力,可以完成许多高难度作业,完成UiAutomator不可能完成的一些任务,可以说appium丰富了UiAutomator的功能,使UiAutomator可以完成更多的任务. Appium到底有哪些优势会让我们优先选择它去做ui自动化呢? 一. appium的优势 首先来看一下appium相比较于UiAutomator有哪些优势: 1.支持webview.hyb…
运行appium切换webview时候遇到报错:’No Chromedriver found that can automate Chrome 'xx.xx.xx' 此报错是因为Appium在运行过程中找不到安卓设备系统中自带Webview的chrome版本所对应版本的Chromedriver,导致了报错. 解决方法: 我们需要找到与安卓系统中webview对应的chromedriver版本并更新到appium中. 找到appium服务使用的chromedriver驱动所在位置,然后使用新下载c…
原文章地址http://blog.csdn.net/qq_19636353/article/details/53731254 浏览器的远程调试工具,使得我们可以通过PC上开启的控制台,调试手机浏览器中正在运行的代码.运行于 Android 4+系统的Chrome for Android 同样也可以配合ADB(Android Debug Bridge)实现桌面远程调试.桌面版Chrome32+已经支持免安装ADB即可实现远程调试移动设备页面/WebView . Android远程调试目前支持所有操…
本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序.微信公众号等.小程序项目页面越来越多,业务逻辑也越来越复杂,全手工测试已无法满足快速增长的业务需求. 然而,由于小程序本身的一些特性,导致业界目前缺乏成熟完善的解决方案,总会出现各种问题(包括腾讯微信官方提供的自动化工具).如何做好小程序的自动化测试就成为测试同学当下普遍面临的一个痛点难题. 本节课就主要分享下微信小程序自动化…
之前研究了一段时间的appium for native app 相应的总结如下:                                            appium测试环境搭建 :http://www.cnblogs.com/tobecrazy/p/4562199.html   知乎Android客户端登陆:http://www.cnblogs.com/tobecrazy/p/4579631.html appium实现截图和清空EditText:http://www.cnblog…
Appium用uiautomator无法对WebView进行className定位,所以只能模拟动作.可以用android sdk自带的monitor工具,先进行截图,再用任意图像处理软件,获取截图的x,y坐标.然后再用模拟动作,进行点击. Appium模拟屏幕点击,有两种方法,一种是直接用tap方法,一种是导入TouchAction,用里边的tap方法. TouchAction可用事件有: 短按 (press) 释放 (release) 移动到 (moveTo) 点击 (tap) 等待 (wa…
要解决的问题:Appium测试Android混合应用时,第二次切换到WebView时失败 原因分析:在用Appium测试Android混合应用时,当程序第一次切换到WebView时,可以正常进行自动化测试.可是当程序第二次切换到WebView时,Appium会自动找到到第一次打开的Html页面,那么这时Appium就无法定位我们第二次打开的Html页面中的元素. Appium第一次切换到Html页面时,会新生成一个Chromedriver:当第二次切换到Html时,会使用已经存在的Chromed…
pyhton+appium+iOS,遍历真机webview.是遍历真机的webview,遍历模拟器的webview请另寻方法. 1.mac上安装ios_webkit_debug_proxy 命令:brew install ios_webkit_debug_proxy 2.ios上打开web检查器 位置:设置->Safari->高级->web检查器 3.启动ios_webkit_debug_proxy 命令:ios_webkit_debug_proxy -c xxxxxxxxxxxxxxx…
通过微信打开debugx5.qq.com,或者直接扫下面二维码   勾选[打开TBS内核Inspector调试功能]   Chrome查看页面元素 手机连接电脑,查看是否连接成功.如下展示设备号则为连接成功   进入任意小程序,以[X东]为例,在Chrome浏览器访问chrome://inspect/#devices   点击inspact,即可查看页面元素   小程序的进程 微信有很多的进程,每一个小程序都运行在不同的进程中.进入[X东]后,看下当前运行在哪个进程中   我们可以看到,当前的小…
打开调试功能 通过微信打开debugx5.qq.com,或者直接扫下面二维码   勾选[打开TBS内核Inspector调试功能]   Chrome查看页面元素 手机连接电脑,查看是否连接成功.如下展示设备号则为连接成功   进入任意小程序,以[X东]为例,在Chrome浏览器访问chrome://inspect/#devices   点击inspact,即可查看页面元素   小程序的进程 微信有很多的进程,每一个小程序都运行在不同的进程中.进入[X东]后,看下当前运行在哪个进程中   我们可以…
1.认识WebView 实例说明: 当你打开百度阅读APP→VIP全站去广告→用自带的 UI Automator去定位里面的元素,如图: 不管你去定位  '规则详情'  '开通'等等,都会定位不到,只能显示一个整体页面,这个就是WebView Note: ① 可以理解与selenium里的iframe类似 ②在右边定位里有明确的表示是 WebView ③点击一个链接后,有进度条加载后页面一般都是Webview.  也就是说,是一个H5页面了 ④UI Automator 不能定位到里面的元素 处理…
App使用H5编写,默认方式找不到元素.启动后获取所有上下文,找到webivew_xxxx的,然后进行切换. 源码: package MyAppium; import io.appium.java_client.android.AndroidDriver; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.DesiredCapabiliti…
Appium Hybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换: 1.切换至WEBVIEW操作: for cons in driver.contexts: if cons.lower().startswith("webview"): driver._switch_to.context(cons) break # 或 cons = driver.contexts # 获取上下文列表 driver._switch_to.context(cons[-1])…
由于测试的APP是混合应用,即包含了原生代码和web网页. 混合应用在应用程序中嵌入了Webview,Webview是用来访问网页的一个控件.Webview内核也分为原生和第三方(比如腾讯X5内核) 一.获取webview中的页面信息 1.在手机(模拟器)中,设置—关于手机—多次点击版本号,切换到开发者模式 2.处于开发者模式,设置界面会有开发人员选项,然后将USB调试功能开启. 3.在pc端  chrome浏览器中输入 chrome://inspect/#devices 回车.如果此时测试ap…
前言 本篇介绍如何在微信公众号上自动化测试,以操作我的个人公众号:yoyoketang为例,没关注的,先微信关注了,再跟着操作 环境准备:python 3.6appium 1.7以上版本微信6.6.6微信里面webview 57.0电脑上chrome版本 66.0appium-chromedriver路径下chromedriver 2.28 开启微信debug模式 1.以微信为例,webview的版本号可以用chrome浏览器查看到,由于微信用的是x5内核,跟其他app不太一样,这里需要先开启微…
前言 上一篇已经解决切换到微信公众号的webview上了,但是定位webview上元素的时候一直提示找不到,打印page_source也找不到页面上的元素,这个问题困扰了一整天,还好最后找到了原因, 此处埋了一个深坑,需要再次切换handle 切换到webview 1.上一篇已经详细介绍如何切换到微信公众号的webview上,这里就不重复说了,贴下代码: # 切换到webview time.sleep(2) print(driver.contexts) driver.switch_to.cont…
Appium - WebView測试 作者: Max.Bai 时间: 2015/07 Appium - WebView測试(Android) 如今App都是混合型的.有原生的也包括WebView的,appium測试的时候就须要在原生和WebView之间切换才干完毕測试. 1. 查看全部context 查看当前全部的窗体 Set<String> contextNames = driver.getContextHandles(); System.print(contextNames); 结果包括眼…
在uiautomator中,直接查看不到webview中的元素,不知道大家遇到过没有?如下 解决方法如下: step0:将uiautomator关闭 step1:在appium 中,设置Android Settings step2:启动appim server后,启动inspector step3:这时,我们可以发现在手机中,已经启动了app,点击“Refresh”可以捕获当前界面元素,选择要打开的webview菜单.通过inspect tap 打开webivew step4:重新打开uiaut…