appium测试混合应用
最近用appium测试公司APP,APP是原生+H5的模式,测试过程中发现大部分H5的页面使用原生的方式可以进行操作,只有少部分H5页面的按钮虽然在uiautomatorviewer的界面能解析出来,但是就是点击不了,使用appium的inspect也同样能解析就是点击不了.
此时就需要将原生的driver切换为H5的driver
切换方法:
print(self.driver.contexts)
#查看所有的context
#返回结果
['NATIVE_APP', 'WEBVIEW_com.huawei.browser']
#其中NATIVE_APP为原生的,WEBVIEW开头的表示H5的
#再使用如下方法切换到H5即可
self.driver.switch_to.context("WEBVIEW_com.huawei.browser")
#使用如下方法确认是否切换成功
print(self.driver.current_context)
切换到H5的driver后之前使用的原生方式无法点击的那个按钮查找元素的方式也需要修改
之前用原生的方式写法为:
//android.widget.Button[@text="确定"]
切换为H5后的写法为:
//button[text()="确定"]
后续的操作如果要继续使用H5的方式来执行则后面所有元素的查找方式都需要修改为webdriver的写法
如果需要切换回原生的方法执行则使用上面的方法切换回NATIVE_APP
切换到H5后执行时发现还是提示找不到此元素
使用Chrome浏览器查看发现打开了多个窗口
所以还需要将窗口切换到存在此元素的页面
切换方法如下:
def switch_to_window(driver, title):
"""此方法是根据window的title来判断此window是否为我们需要的window"""
windows = driver.window_handles
#获取所有的window
for window in windows:
driver.switch_to.window(window)
#切换到其他window
if driver.title.__contains__(title):
#判断此window的title与我们需要的window的title是否一致
print("就是这个页面!!!")
break
切换到对应的window后可以成功点击此按钮
appium测试混合应用的更多相关文章
- 【亲测】Appium测试Android混合应用时,第二次切换到WebView失败
要解决的问题:Appium测试Android混合应用时,第二次切换到WebView时失败 原因分析:在用Appium测试Android混合应用时,当程序第一次切换到WebView时,可以正常进行自动化 ...
- Appium Hybrid混合应用测试——Native切换WebView
Appium Hybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换: 1.切换至WEBVIEW操作: for cons in driver.contexts: if co ...
- Appium Hybrid混合应用测试——Native切换WebView , 切换不了WebView (没有试过,先记录在此)
Appium Hybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换: 1.切换至WEBVIEW操作: for cons in driver.contexts: if co ...
- Appium使用Python运行appium测试的实例
Appium使用Python运行appium测试的实例 一. Appium之介绍 https://testerhome.com/topics/8038 详情参考--https://testerhom ...
- 一文带你趟过mac搭建appium测试环境的遇到的坑
做UI自动化,最难的一步就是在环境搭建上,怎么去搭建一个UI自动化测试的环境,会难住很多人,在Mac上搭建appium如何搭建呢,本文带着大家去领略如何在mac上搭建appium测试环境.下面就是详细 ...
- 『与善仁』Appium基础 — 14、Appium测试环境搭建
目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...
- Appium 测试APK
介绍 Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持iOS.Android及FirefoxOS平台测试.Appium使用WebDriver的json w ...
- 【转】Appium测试安卓Launcher以滑动窗体获得目标应用
原文地址:http://blog.csdn.net/zhubaitian/article/details/39755553 所谓Launcher,指的是安卓的桌面管理程序,所有的应用图标都放在laun ...
- appium测试代码nullpoint
今天写了个简单向上滑动,执行到向上滑动操作,报nullpoint异常,经过各种乱碰终于解决了,现记录一下过程,以备以后参考! 环境背景:java+testng+appium 在@Test下调用 dir ...
- 使用Appium 测试微信小程序和微信公众号方法
由于腾讯系QQ.微信等都是基于腾讯自研X5内核,不是google原生webview,需要打开TBS内核Inspector调试功能才能用Chrome浏览器查看页面元素,并实现Appium自动化测试微信小 ...
随机推荐
- read IEEE standard for verilog(3)
read IEEE std for verilog 1.阅读准备 在阅读的第二部分读到了lexical conventions,这次计划读一节.也就是把lexical conventions读完. 2 ...
- 2024最新最全Java和Go面经,面试了30多场,终于上岸了!
> 本文来自我们技术交流群群友的投稿,未经授权,禁止转载. 原文链接:太难了,Java和Go,面试了30多场,终于上岸了! 先听一下TA的故事 2023年10月份我就做好了离职跳槽的准备,做了 ...
- 05 CMMI(Capability Maturity Model Integration)【软件过程与管理】
CMMI(Capability Maturity Model Integration) CMMI成熟度等级 执行的:过程不可预测,缺乏控制,反应式的 已管理的:项目描绘过程,而且经常是反应式的 已定义 ...
- .net跨平台运行实践
一个偶然的机会,一个朋友想做一个程序,同时支持windows和linux,本来想用go来写,奈何不太熟练,突然想到.net不是也支持跨平台了吗,还没有操作过,刚好可以试验一下. 最新的.net 6已经 ...
- #NIM游戏#CodeChef A Game With a Sheet of Paper
SHGAME 分析 可以发现每次相当于去掉上下左右的若干行列,也就是 \(x-1,n-1-x,y-1,m-1-y\) 题目就转换成了取石子的问题,先手必胜当且仅当 \((x-1)\) xor \((n ...
- 【直播回顾】OpenHarmony知识赋能第五期第一课——精益开源
4月26日晚上19点,知识赋能第五期第一节课<精益开源--理解设计思维.精益创业.敏捷开发是如何应用到开源项目中>,在OpenHarmony开发者成长计划社群内成功举行. 本期课程,由开源 ...
- 成长计划校园极客秀|基于OpenHarmony的智能阳台
前言 本文由OpenAtom OpenHarmony(以下简称"OpenHarmony")开源开发者成长计划活动的参与者李建涛提供,详细阐述了由搭载OpenHarmony系统的拓维 ...
- XML 简介及用法详解
XML 是一种用于存储和传输数据的与软件和硬件无关的工具. 什么是XML? XML代表eXtensible Markup Language(可扩展标记语言).XML是一种与HTML非常相似的标记语言. ...
- C# 继承、多态性、抽象和接口详解:从入门到精通
C# 继承 在 C# 中,可以将字段和方法从一个类继承到另一个类.我们将"继承概念"分为两类: 派生类(子类) - 从另一个类继承的类 基类(父类) - 被继承的类 要从一个类继承 ...
- 基于C语言的面向对象设计模式(持续更新)
前言 首先这篇文章只是初步的尝试,不涉及过于高深的编程技巧:同时需要表明的是,面向对象只是一种思想,不局限于什么样的编程语言,不可否认的是基于面向对象特性而设计的语言确实要比面向过程式的语言更加容易进 ...