Hybrid App(混合模式移动应用)
是指介于web-app、native-app这两者之间的app
兼具Native App良好用户交互体验的优势

Web App跨平台开发的优势

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.net.URL;

import static java.lang.Thread.sleep;

public class HybridAppTest {private AppiumDriver driver;

    @BeforeMethod
    public void beforeMethod() throws MalformedURLException, InterruptedException {DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("platformName","Android");
        capabilities.setCapability("platformVersion","7.1.1");
        capabilities.setCapability("deviceName","3216e430");
        capabilities.setCapability("browserName","Chrome");
        //Chrome
        capabilities.setCapability("appPackage","com.android.browser");
        //Chrome包名
        capabilities.setCapability("appActivity",".BrowserActivity");
        //Chrome启动页
        capabilities.setCapability("unicodeKeyboard",true);
        capabilities.setCapability("resetKeyboard",true);
        capabilities.setCapability("noReset",true);
        capabilities.setCapability("noSign",true);

        URL url = new URL("http://127.0.0.1:4723/wd/hub");
        driver = new AndroidDriver(url, capabilities);
        sleep(2000);
    }@Test
    public void hybridApp() throws InterruptedException {driver.get("http://www.cnblogs.com/yjlch1016/");
        sleep(2000);
        driver.context("NATIVE_APP");
        //切换到原生
        sleep(1000);
        driver.findElementById("com.android.chrome:id/menu_button").click();
        //点击右上角的菜单
        sleep(2000);
        driver.findElementByAccessibilityId("历史记录").click();
        //点击历史纪录
        sleep(2000);
        driver.navigate().back();
        //手机返回键
        sleep(2000);
        driver.context("CHROMIUM");
        //切换到H5
        sleep(1000);
        driver.findElementByXPath(".//*[@id='homepage1_HomePageDays_ctl00_DayList_TitleUrl_0']").click();
        //点击第1篇博客
        sleep(2000);
        Assert.assertEquals(driver.findElementByXPath(".//*[@id='cb_post_title_url']").getText(), "Appium(Python)驱动手机淘宝App");
    }@AfterMethod
    public void afterMethod(){driver.closeApp();
        driver.quit();
    }
}

如果是自己公司的App,
请记得麻烦开发工程师开启WebView的debug模式!

Appium测试混血App相关推荐

  1. Appium(Python)测试混血App

    Hybrid App(混合模式移动应用) 是指介于web-app.native-app这两者之间的app 兼具Native App良好用户交互体验的优势 和 Web App跨平台开发的优势 Hybri ...

  2. appium测试Cannot start the ‘XXX‘ application报错,无法打开app

    文章目录 通过 adb logcat 抓取,能正常抓取到 app 包名和 app 启动后的 activity,如果保证抓取正确,再看有没有报权限不足的异常,如果有那就是权限不足了,需要开发给打开的界面 ...

  3. 手机 x PC 交叉感染?360 安全研究员演示“混血攻击”

    设想这样的场景: 黑客偷偷用一台手机连接了你的电脑,仅仅半分钟时间,看起来什么都没发生. 然而自此以后,受害者的电脑会感染每一个连接它的手机. 这些手机如果连接了其他电脑,又会把其他电脑变成传染源,发 ...

  4. php原生好还是tp好_webapp/H5封装,混开APP,没有原生APP好?事实是这样的吗?

    混开APP没有原生APP好?事实是这样的吗?很多人要混淆概念,伊凡今天用通俗易懂的话让大家明白其中奥妙. 一.H5app(也叫H5封装)H5APP你可以理解成我是一个手机网页,以前的手机版网页叫做wa ...

  5. Appium使用Python运行appium测试的实例

    Appium使用Python运行appium测试的实例 一.  Appium之介绍 https://testerhome.com/topics/8038 详情参考-- https://testerho ...

  6. android 访问web.py,Appium 测试 Android 时,python 用例调用 Webdriver.remote 后无回应

    大家好!遇到一个问题,希望大家能指点一下.我搭建好了 Appium 测试 Android 应用的测试环境,在运行 Python 编写的测试用例时,发现调用 Webdriver.remote 后,没有任 ...

  7. DeepMind为明年的AAAI,准备了一份各种DQN的混血

    夏乙 编译整理 量子位 出品 | 公众号 QbitAI ��DeepMind公开了一篇最近投递到AAAI 2018的新论文,这篇论文的主角,依然是这家公司四年前就开始研究的DQN,配角,依然是雅达利( ...

  8. JAVA+appium+夜神模拟器实现APP爬虫

    JAVA+appium+夜神模拟器实现APP爬虫 爬虫需要 appium server: 一个APP自动化测试框架 C/S架构 服务端由node.js开发 客户端支持多种语言,底层使用netty通信. ...

  9. Appium 测试遇到问题解决方案

    转载自:http://bbs.51testing.com/thread-1072915-1-1.html Appium 测试遇到问题解决方案 [复制链接]     qh988629 该用户从未签到 电 ...

最新文章

  1. 李宏毅深度学习——梯度下降
  2. struts2中改变struts.xml默认路径
  3. vuex webpack 配置_vue+webpack切换环境和打包之后服务器配置
  4. datatables使用封装
  5. 浅谈linux中shell变量$#,$@,$0,$1,$2,$?的含义解释
  6. Shell 字符串处理、获取文件名和后缀名
  7. 2020年,为什么你该学PHP?!!
  8. html用户名注册登录代码,HTML用户注册界面的实现
  9. java实现点卡生成
  10. MDI Jade6的安装(含ocx控件的安装、PDF索引建立、修改注册表)
  11. Windows的快捷方式、符号链接、目录联接、硬链接的区别
  12. 专访网秦创始人林宇:我曾每天戴20公斤手铐 生不如死
  13. 个人电脑秒变服务器 简单几步,你的电脑也可以成为服务器 (内网穿透)
  14. 洛谷P5071 [YNOI2015]此时此刻的光辉 莫队+玄学优化+卡常QWQ
  15. 推荐一款高颜值第三方网易云客户端: YesPlayMusic
  16. Java熔断器比较_线上防雪崩利器——熔断器设计原理与实现
  17. Vue tsx 使用自定义v-model修饰符
  18. TFS:TF30042数据库已满 the database is full. contact you team foundation server administrator
  19. Spark报错:Error:scalac: Scala compiler JARs not found (module ‘Spark_two‘): C:\Users\沫小新\.m2\repo
  20. python枚举算法流程图_算法-枚举

热门文章

  1. 导出 MySQL 数据库表结构设计文档
  2. 《理想藏书》书籍推荐
  3. mac SCp上传文件到阿里云服务器centos
  4. 仿热血江湖游戏类46地面物品类
  5. Java—九九乘法表
  6. 逗号运算符java_简单的java计算器 实现了重复标点及运算符连点限制
  7. 第一天之导入Vuetify的坑
  8. 微信小程序文本、图片内容违规信息校验
  9. 【小白学前端】化腐朽为神奇-HTML+CSS3实现电影票(day01-3)
  10. LIO-SAM imuPreintegration