首先要分析软件步骤

从大的方面来说

第一步要登录成功,第二步主流程选择购买一个课程(我太穷了,所以支付的时候选择取消订单代表购买成功了)

一登录

1.1启动软件

采坑点:有的时候你安装一个新版appium会发现,双击之后没有启动,我的解决办法是从1.17版本换成1.15版本安装

和之前 说的启动方式相同,固定写法

//1.添加配置,创建DesiredCapabilities对象

DesiredCapabilities desiredCapabilities = newDesiredCapabilities();//指定测试设备的名称

desiredCapabilities.setCapability("deviceName", "JQYNW18C12004061");

desiredCapabilities.setCapability("platformName", "Android"); //添加操作系统配置

desiredCapabilities.setCapability("platformVersion", "9"); //添加操作系统版本设置

desiredCapabilities.setCapability("appPackage", "com.xueersi.parentsmeeting"); //指定想要测试应用的包名

desiredCapabilities.setCapability("appActivity", "com.xueersi.parentsmeeting.module.home.LaunchActivity"); //指定想要测试应用的入口activity

desiredCapabilities.setCapability("sessionOverride", true);//每次启动时覆盖session,否则第二次后运行会报错不能新建session

desiredCapabilities.setCapability("unicodeKeyboard", true); //设置键盘

desiredCapabilities.setCapability("resetKeyboard", true); //设置默认键盘为appium的键盘

AndroidDriver androidDriver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),desiredCapabilities);

Thread.sleep(5000);

启动软件

1.2点击登录按钮

1.3.点击其他号码登录

1.4点击密码登录

1.2.13.14都是相同的操作执行3遍

androidDriver.findElementById("com.xueersi.parentsmeeting:id/rl_splash_privacy_verify").click();

Thread.sleep(2000);

androidDriver.findElementById("com.xueersi.parentsmeeting:id/tv_splash_login").click();

Thread.sleep(2000);

androidDriver.findElementById("com.xueersi.parentsmeeting:id/tv_bt_other_way").click();

Thread.sleep(2000);

androidDriver.findElementById("com.xueersi.parentsmeeting:id/fast_login_to_password_login").click();

Thread.sleep(2000);

View Code

1.5、1.6输入账号密码、点击登录

好,上次的软件就是这里出的问题,无法输入内容。

这回APP就好使了

androidDriver.findElementById("com.xueersi.parentsmeeting:id/et_login_name").sendKeys("XXXXX");

androidDriver.findElementById("com.xueersi.parentsmeeting:id/et_login_type_pwd_number").sendKeys("XXXXX");

androidDriver.findElementById("com.xueersi.parentsmeeting:id/tv_login_btn").click();

View Code

吐槽一下。我想修改代码竟然在编辑页面中开不大折叠的代码框。还需要删除重新创建才好使。这是Bug啊

1.7 你登录成功之后会有一些权限系统设置,需要同意或者关闭

androidDriver.findElementById("com.xueersi.parentsmeeting:id/btn_permission_goto_settings").click();

Thread.sleep(2000);

androidDriver.switchTo().alert().accept();//选择确定关闭系统提示

View Code

第一步就算是完成了,相当于终于登录成功。进入到APP内部页面了。

我这一路走过来走了1个礼拜。我相信你们肯定比我走的要顺利

接下来执行主流程:购买一个课时

我设计的流程是

1.在主页点击搜索栏,进入搜索页面

androidDriver.findElementByXPath("//*[contains(@resource-id,'com.xueersi.parentsmeeting:id/ts_home_search_banner')]/android.widget.TextView").click();

2.在搜索页面,搜索:高中语文,显示查询结果列表

这里出现一个坑,我发现我输入内容之后无法点击确认进行筛选

通过网上查询发现可以使用模拟键盘

1. androidDriver.pressKeyCode(66); 来进行操作,---------------失败

2.说原因是appium自带的Unicode IME被自动设置成默认输入法了

所以

注释掉

// desiredCapabilities.setCapability("unicodeKeyboard", true); //设置键盘

// desiredCapabilities.setCapability("resetKeyboard", true); //设置默认键盘为appium的键盘

然后下载一个搜狗输入法,然后设置搜狗输入法为默认输入法

重新执行---------弹出输入框-----------成功

3.然后点击一个课程,进入课程详情

坑:这里发现所有的课程的id都是com.xueersi.parentsmeeting:id/btn_permission_goto_settings,我想选择第二个

ArrayList eleList = new ArrayList();

eleList = (ArrayList) androidDriver.findElementsById("com.xueersi.parentsmeeting:id/tv_course_card_name");

eleList.get(1).click();

4.点击加入购物车,弹出二次确认框

5.点击确认加入,成功加入购物车

6.点击购物车进入购物车页面

7.点击编辑

8.选择全部

9.点击删除

10.返回到主页

11.退出登录

这些基本上都是点点点,就不写代码了。和上面的大同小异,只是id不同而已

最后结果是执行成功。退出登录。3天之后学而思营销老师给我打电话了。证明跑通了o(╯□╰)o

安卓加java完成登录_从零学习安卓自动化(java+appium方向):完成登录操作+一个主流程(四)...相关推荐

  1. c和java哪个好学_编程入门学习c++和Java哪个比较好

    编程入门学习c++和Java哪个比较好 发布时间:2020-04-25 16:54:41 来源:亿速云 阅读:231 作者:栢白 编程入门学习c++和Java哪个比较好?如今这些都是小白比较关心的,如 ...

  2. java optional 用法_理解、学习与使用Java中的Optional

    从Java8 引入的一个很有趣的特性是Optional类.Optional类主要解决的问题是臭名昭著的空指针异常(NullPointerException) -- 每个 Java 程序员都非常了解的异 ...

  3. 零基础学java web开发_从零基础学Java成为一个专业的java web 开发者

    原标题:从零基础学Java成为一个专业的java web 开发者 "我怎么才能成为一个Java Web开发者?"对于这个问题,答案其实并不简单.成为一个Java Web开发人员包括 ...

  4. java管理和用户用一个入口登录_五、基于Struts的MVC案例:用户登录

    通过上一部分内容的学习,我们已经能完全看懂简单的Struts程序,并且知道通过增加Action来增加业务功能的实现,通过struts.xml实现路由映射,并通过JavaBean来传递数据. 本着应用就 ...

  5. java bean工厂_从零构建轻量级Java Web框架

    Bean工厂 回顾下前面的知识,通过加载配置文件获取应用基础包名,加载基础包名下所有的类,获取Controller,Service类.到目前为止,我们只是加载了类,但是无法通过获取的类来实例化对象.因 ...

  6. java 底层运行_从表面到底层丨Java和JVM的运行原理,现在带给你

    Java,编程语言,被创造于90年代初,在经历了这么多年的风风雨雨,Java已经成长为世界第一的编程语言,根据往期以及目前的数据来看,Java的使用频率为全球第一,即使偶尔会有第二第三的情况,但是这依 ...

  7. 安卓x86程序安装目录_电脑上的安卓系统体验

    分享下这几天体验的在电脑上安装的安卓系统,选用了Phoenix OS v3.0.7版本安卓系统版本号为7.1.1(没有选最新版,是因为新版本有广告,而这版可以体验到纯净的系统). 1安装方法该系统的安 ...

  8. java 多重属性_最全面的44个Java 性能调优细节

    我认为,代码优化的最重要的作用应该是:避免未知的错误.在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因. 然而为了解决 ...

  9. java核心面试_前100多个核心Java面试问题

    java核心面试 Core Java interview questions help you in preparing for java based interviews. Whether you ...

最新文章

  1. RecyclerView Adapter中notifyDataSetChanged 的作用
  2. 【Word】一些实用的小技巧
  3. Python中的类属性和类方法(静态方法、私有属性和私有方法)
  4. 2018下半年软考报名
  5. 岁月的脚步,被时间冲刷——如何修复EM ?
  6. 每周送新书:Python数据分析、SSM框架、Redis深度历险
  7. VMware安装时出现 “您无权输入许可证密钥,请使用系统管理员账户重试”解决方案
  8. SQL Server 负载均衡集群方案之Moebius
  9. 如何在WindowsXP中发短信
  10. nod-1089-最长回文子串 V2
  11. win10触控平板 如何禁掉IE10的手势控制
  12. 8月1号起 银行卡、支付宝、微信的这些费用可以省了!
  13. 图解TCP/IP之半双工全双工通信
  14. c语言fseek函数的总结
  15. PORIS门禁控制器
  16. 12枚硬币中取1枚假币的问题
  17. Lei ❤函数的初识
  18. 阿里云天池 - 2018之江杯全球人工智能大赛 之零样本图像目标识别 参赛总结
  19. 通过命令行5步声成sisx文件(Symbian)
  20. Qbasic 输出 星号三角形

热门文章

  1. 使用raphael.js绘制中国地图
  2. iPhone 对话框与输入框的响应简单界面教程
  3. 《SLAM十四讲》知识点梳理
  4. jenkins 运行 shell脚本报错,Failed to restart tomcat.service: Interactive authentication required
  5. Linunx操作基础(十六)之Systemd 入门教程(一)
  6. 用Markdown写表格
  7. 【python】去除字符串头尾的多余符号
  8. PixelShuffle特征图的上采样的方法
  9. Sublime与远程服务器代码同步工具SFTP
  10. 【图像风格转换】项目参考资料总结