Appium测试混血App
来源:互联网 发布:淘宝卖家遇到诈骗案例 编辑:程序博客网 时间:2024/05/17 07:39
Appium测试混血App:
Hybrid App(混合模式移动应用)
是指介于web-app、native-app这两者之间的app,
兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。
混合应用
Appium的核心原则之一是您不必更改应用程序进行测试。
根据该方法, 可以使用Selenium进行网络应用程序的测试,
测试混合网络应用程序(例如iOS应用程序中的UIAWebView元素)。
需要一些技术复杂性,以便Appium知道您是要自动化应用程序的本机或Web视图,
但是幸运的是,我们可以将其保留在WebDriver协议中。
以下是在您的Appium测试中与网络视图通话所需的步骤:
1、导航到您的应用程序的一部分网页视图处于活动状态
2、调用GET session /:sessionId / contexts
3、这返回了我们可以访问的上下文列表,如“NATIVE_APP”或“WEBVIEW_1”
4、使用您要访问的上下文的ID 调用POST session /:sessionId / context
5、(这使您的Appium会话成为一种模式,其中所有命令都被解释为用于自动化Web视图,
而不是应用程序的本机部分。例如,如果运行getElementByTagName,
它将对Web视图的DOM进行操作,而不是返回UIAElements。
当然,某些WebDriver方法只在一个上下文中有意义,所以在错误的上下文中会收到一条错误消息。
6、要停止在Web视图上下文中的自动化,并返回自动化应用程序的本机部分,
只需context使用本机上下文id再次调用即可离开Web框架。
Android混合应用程序
Appium通过Chromedriver提供内置的混合支持。
Appium还使用了Selendroid,在超过4.4的设备上进行webview支持。
(在这种情况下,您需要指定"automationName": "selendroid"为所需的功能)。
确保 setWebContentsDebuggingEnabled设置为true,如远程调试文档中所述。
一旦您设置了所需的功能并开始了一个应用程序会话,请按照上面的一般说明进行操作。
Set<String> contextNames = driver.getContextHandles();for (String contextName : contextNames) { System.out.println(contextNames); //打印出native_app or webview_1}driver.context(contextNames.toArray()[1]);//设置上下文为WEBVIEW_1String myText = driver.findElement(By.cssSelector(".green_button")).click();
driver.context("NATIVE_APP");//如果我们想做更多的本地测试
- Appium测试混血App
- Appium 测试 app 滑屏
- app自动化测试3---appium
- 使用appium进行iOS App测试
- 使用Appium测试Hybrid App的方法
- 开始实际搭建App测试环境-Appium
- 利用Appium实现App自动化测试
- 自动化测试|Appium环境搭建 | App自动化测试
- appium对于混合app的webview页面的测试
- IOS App自动化测试环境配置 - Selenium2.0+Appium
- android app自动化测试框架Appium资料整理
- 实操:安卓app测试 基于 eclipse + AVD +appium
- appium+python测试app使用相对坐标定位元素
- 1.安卓app自动化测试-appium环境篇
- 2.安卓app自动化测试-初识python调用appium
- Appium+Python自动化测试(二)--运行App程序示例
- RF+Appium 滑屏问题:APP兼容性测试
- appium 下 python 脚本自动化测试iOS APP 实例
- mysql主主复制
- 10.5 test solution.
- 郑州集训DAY1笔记
- Java程序转移图片到其他文件夹
- 自己做的编程语言,给小白看看,哈哈哈(大神勿喷)
- Appium测试混血App
- Hibernate初学者---一对多 /多对一 单向关联
- 债券和股票有什么区别?债券和股票的区别在哪里?
- 与运算判断包含哪些条件
- Learning Python Part I 之 元组
- 【FZU】 2252
- maven项目java.lang.ClassNotFoundException: org.springframework.web.servlet.Dispatcher
- Snipast截图软件
- c语言中的运算符