首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Appium中将上下文从Native App切换到Web App

在Appium中,要将上下文从Native App切换到Web App,可以通过以下步骤实现:

  1. 获取当前所有的上下文: 使用driver.getContextHandles()方法可以获取当前所有的上下文,返回一个Set集合。
  2. 切换到Web App的上下文: 遍历上一步获取的上下文集合,找到包含"WEBVIEW"关键字的上下文,然后使用driver.context()方法切换到该上下文。
  3. 切换到Web App的上下文: 遍历上一步获取的上下文集合,找到包含"WEBVIEW"关键字的上下文,然后使用driver.context()方法切换到该上下文。
  4. 切换成功后,可以进行Web App的操作: 切换到Web App的上下文后,就可以使用Appium提供的WebDriver API来操作Web页面,例如查找元素、点击按钮、输入文本等。
  5. 切换成功后,可以进行Web App的操作: 切换到Web App的上下文后,就可以使用Appium提供的WebDriver API来操作Web页面,例如查找元素、点击按钮、输入文本等。
  6. 切换回Native App的上下文: 在完成Web App的操作后,如果需要切换回Native App,可以使用driver.context()方法切换到Native App的上下文。
  7. 切换回Native App的上下文: 在完成Web App的操作后,如果需要切换回Native App,可以使用driver.context()方法切换到Native App的上下文。

需要注意的是,切换上下文前需要确保已经进入了Webview页面,可以通过查看当前页面的源代码或者使用Appium提供的driver.getPageSource()方法来确认。

推荐的腾讯云相关产品:腾讯云移动测试服务Appium插件

  • 产品介绍链接地址:https://cloud.tencent.com/product/mts-appium
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

自动化-Appium-​第一个Demo-混合(Python版)

移动应用和Webview分别属于两个不同的上下文,移动应用默认的Context为”NATIVE_APP”,Webview默认的Context为”WEBVIEW_被测进程名称”。...App NATIVE_APP WEBVIEW_com.xiaoV.BWalletBeta (5)切换到WEBVIEW_com.xiaoV.BWalletBeta(webview模式)以便查找web元素...(webview模式)以便查找web元素 (5)打印当前网页源码 (6)返回 (7)切换到NATIVE_APPApp模式) (8)点击首页-机票 (9)关闭去哪儿应用程序 3、在执行测试脚本切换到WebView...)以便查找web元素 (7)打印当前网页源码 (8)切换到NATIVE_APPApp模式) (9)点击返回 (10)关闭UICatalog应用程序 2.3.2真机 1、开启Appium服务(任选一种即可...App NATIVE_APP WEBVIEW_20(每次执行时WEBVIEW值是变化的,不是固定的) (5)切换到WEBVIEW_20(webview模式)以便查找web元素 (6)打印当前网页源码 (

2.5K20

Appium+python自动化13-native和webview切换

前言 现在大部分app都是混合式的native+webview,对应native上的元素通过uiautomatorviewer很容易定位到,webview上的元素就无法识别了。...二、contexts 1.context是中文翻译是上下文,环境,当然学过selenium的同学,也可以理解为句柄(handle),其实是一回事,反正知道是两个不同的环境就行了。...2.先获取页面是contexts环境,如下图红色区域,获取的是一个list列表: NATIVE_APP:这个就是native,也就是原生的 WEBVIEW_com.xxxx :这个就是webview 3...四、native 1.webview上操作完后,想回到native上操作,这时候需要先回来,native有两个方法: 方法一:driver.switch_to.context("NATIVE_APP...") # 这个NATIVE_APP是固定的参数 方法二:driver.switch_to.context(contexts[0]) # contexts里取第一个参数 ?

1.9K60

自动化-Appium-第一个Demo-混合(Java版)

移动应用和Webview分别属于两个不同的上下文,移动应用默认的Context为”NATIVE_APP”,Webview默认的Context为”WEBVIEW_被测进程名称”。...webview模式)以便查找web元素 (7)打印当前网页源码 (8)点击关于借钱 (9)切换到NATIVE_APPApp模式) (10)点击返回 (11)关闭帮帮应用程序 脚本执行结束后,控制台打印的信息...(webview模式)以便查找web元素 (5)打印当前网页源码 (6)点击返回 (7)切换到NATIVE_APPApp模式) (8)点击首页-机票 (9)关闭去哪儿应用程序 脚本执行结束后,控制台打印的信息...)以便查找web元素 (7)打印当前网页源码 (8)切换到NATIVE_APPApp模式) (9)点击返回 (10)关闭UICatalog应用程序 脚本执行结束后,控制台打印的信息: 2.3.2...web元素 (7)打印当前网页源码 (8)点击关于借钱 (9)切换到NATIVE_APPApp模式) (10)点击返回 (11)关闭帮帮应用程序 脚本执行结束后,控制台打印的信息:

2.5K30

Android H5元素定位

解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原生控件进行元素定位,而Web网页是单独的B/S架构,两者的运行环境不同因此需要进行上下文(context...context 简介 Context的中文翻译为:语境; 上下文; 背景; 环境,在开发中我们经常说“上下文”,那么这个“上下文”到底是指什么意思呢?...Webview 调试模式检查与开启 基础检查方式 打开app对应的h5页面,在 chrome://inspect/#devices 地址中,检查是否显示对应的webview,没有,则当前未开启调试模式...print(contexts) #打印结果 ['NATIVE_APP', 'WEBVIEW_com.android.launcher', 'WEBVIEW_com.wondershare.drfone.../Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-chromedriver/chromedriver/

3.3K20

Appium自动化(15) - 针对 webview 进行自动化测试

可以理解成 appium 操作的作用域 原生app context 就是 appium 默认操作的作用域,而 webview 是一个独立的作用域,appium 可以切换到里面进行操作 和selenium...一样,iframe 是独立的一个作用域,所以要切换到 iframe,才能对iframe里面的元素进行操作 原生app控件的 context 名字是啥?...NATIVE_APP webview 控件的context 名字是啥?...(appium操作的作用域) # context-NATIVE_APP的时候-只能操作原生控件 # context-WEBVIEW_包名,只能操作web元素 # 查看context的名称 print(...的类型 # 原生_app # 混合app # web_app webview 自动化测试的总结 只有开启 debug 模式的 app 才能自动化 webview 的内容 自动化 webview 界面内容需要指定匹配

2.9K20

Appium自动化测试框架

Appium自动化测试框架 环境搭建 adb 构成和原理 连接 包名,界面名 文件传输 获取APP启动时间 获取手机日志 安装和卸载APP 进入到安卓手机内部的Linux系统命令行 启动和停止adb服务端...查看命令帮助 其他命令 Appium inspector工具 元素探测 包名和类名 aapt命令 APP类型 APP布局和控件 JAVA SDK 元素定位和元素操作 配合Testng框架使用 Appium...app的测试,下面开始讲解,如何完成对Hybrid APP(混合型—>Native+H5)进行自动化测试 手机端页面分为两类,一类使用原生安卓开发,另一类使用原生安卓加h5页面混合而成,对于原生页面的自动化测试...Appium提供对Hybrid app进行自动化测试的方法= 基于UIAutomator+ChromeDriver 准备工作: 准备android 4.4+ 版本以上的手机/模拟器 在app源码中将...进行测试,这里选择58同城 先进入到某个web界面后,再进行下面这些操作 每一种页面都存在一种上下文,要定位到web页面里面的元素,需要切换到对应的context中,然后进行元素定位。

2K30

自动化-Appium-微信公众号(Python版)

adb shell ps 查询的pid desired_caps['chromeOptions'] = {'androidProcess': 'com.tencent.mm:tools'} 7、切换NATIVE_APP...App模式 driver.switch_to.context("NATIVE_APP") # 点击返回 driver.find_element_by_xpath("//android.widget.ImageView...方式二:开启Appium Desktop 打开Appium Desktop 服务IP和端口默认的情况下,直接点击Start Server v1.8.0来开启Appium服务,如图所示。...脚本执行步骤: (1)启动微信应用程序 (2)点击国美管家 (3)点击预约服务 (4)打印出被测AppNATIVE_APP和WEBVIEW NATIVE_APP WEBVIEW_com.huawei.wifiprobqeservice...NATIVE_APPApp模式) (13)点击返回 (14)关闭微信应用程序 3、在执行测试脚本切换到WebView模式操作中,可能多多少少会遇到一些报错,排除元素定位不对的情况,大部分报错都是WebView

2.2K31

自动化-Appium-微信小程序(Python版)

shell ps 查询的pid desired_caps['chromeOptions'] = {'androidProcess': 'com.tencent.mm:appbrand0'} 7、切换NATIVE_APP...App模式 driver.switch_to.context("NATIVE_APP") time.sleep(5) # 点击分类 driver.find_element_by_xpath("//android.widget.TextView...方式二:开启Appium Desktop 打开Appium Desktop 服务IP和端口默认的情况下,直接点击Start Server v1.8.0来开启Appium服务,如图所示。...脚本执行步骤: (1)启动微信应用程序 (2)点击发现 (3)向下滑动 (4)点击小程序 (5)点击京东购物 (6)打印出被测AppNATIVE_APP和WEBVIEW NATIVE_APP WEBVIEW_com.tencent.mm...NATIVE_APPApp模式) (14)点击分类 (15)关闭微信应用程序 3、在执行测试脚本切换到WebView模式操作中,可能多多少少会遇到一些报错,排除元素定位不对的情况,大部分报错都是WebView

4K20

自动化-Appium-微信小程序(Java版)

androidProcess", "com.tencent.mm:appbrand0"); capabilities.setCapability(ChromeOptions.CAPABILITY, options); 7、切换NATIVE_APP...App模式 driver.context("NATIVE_APP"); Thread.sleep(5000); /...方式二:开启Appium Desktop 打开Appium Desktop 服务IP和端口默认的情况下,直接点击Start Server v1.6.5来开启Appium服务,如图所示。...2、执行测试脚本,脚本执行步骤: (1)启动微信应用程序 (2)点击发现 (3)向下滑动 (4)点击小程序 (5)点击京东购物 (6)打印出被测AppNATIVE_APP和WEBVIEW NATIVE_APP...NATIVE_APPApp模式) (14)点击分类 (15)关闭微信应用程序 脚本执行结束后,控制台打印的信息: 3、在执行测试脚本切换到WebView模式操作中,可能多多少少会遇到一些报错,排除元素定位不对的情况

2.1K20

appium+python自动化41-微信公众号

前言 本篇介绍如何在微信公众号上自动化测试,以操作我的个人公众号:yoyoketang为例,没关注的,先微信关注了,再跟着操作 环境准备: python 3.6 appium 1.7以上版本 微信6.6.6...的版本号可以用chrome浏览器查看到,由于微信用的是x5内核,跟其他app不太一样,这里需要先开启微信的debug模式 开启微信debug模式:在微信聊天界面输入:debugx5.qq.com,如何勾选...:tools') 打印结果: [‘NATIVE_APP’, ‘WEBVIEW_com.tencent.mm:tools’] 参考代码: from appium import webdriver import...click() # 点公众号菜单-精品分类 time.sleep(3) driver.find_elements_by_id('com.tencent.mm:id/aaq')[0].click() # 切换到...//*[@id='namespace_1']/div[1]/div/div[2]").click() time.sleep(2) driver.quit() 遇到坑 目前能切换到webview上,但是操作

2.5K30

Appium上下文和H5测试(一)

2.怎么样分辨一个 App 页面究竟是原生的还是 Web 的? 3.如果 AppWeb 的界面,那界面不会有布局边界显示,如有则说明是原生的界面。...图片中可以看出,上面是原生控件,下面是 Html 页面。所以,这个就是混合应用。 ? 3.如果 AppWeb 的界面,那界面不会有布局边界显示,如有则说明是原生的界面。...外面点击进来的时候,外面是一个原生控件,从一个原生控件点击之后,切换到一个 Html 页面中操作,它们俩很显然是不一样的东西。一个是 Html,一个是安卓控件。...要从原生控件中切换到手机的 Html 页面中,切换操作的前提是得知道切换的是谁,得知道切换到哪去,所以这里也是一样的。首先必须能够识别到 Web View。...识别到 Web View 的前提是:下载知乎或者豆瓣,去获取所有当前可以操作的上下文,会发现没有 web view。也就是关闭了 Web View 的显示。

1K20
领券