安卓加java完成登录_从零学习安卓自动化(java+appium方向):完成登录操作+一个主流程(四)...
首先要分析软件步骤
从大的方面来说
第一步要登录成功,第二步主流程选择购买一个课程(我太穷了,所以支付的时候选择取消订单代表购买成功了)
一登录
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方向):完成登录操作+一个主流程(四)...相关推荐
- c和java哪个好学_编程入门学习c++和Java哪个比较好
编程入门学习c++和Java哪个比较好 发布时间:2020-04-25 16:54:41 来源:亿速云 阅读:231 作者:栢白 编程入门学习c++和Java哪个比较好?如今这些都是小白比较关心的,如 ...
- java optional 用法_理解、学习与使用Java中的Optional
从Java8 引入的一个很有趣的特性是Optional类.Optional类主要解决的问题是臭名昭著的空指针异常(NullPointerException) -- 每个 Java 程序员都非常了解的异 ...
- 零基础学java web开发_从零基础学Java成为一个专业的java web 开发者
原标题:从零基础学Java成为一个专业的java web 开发者 "我怎么才能成为一个Java Web开发者?"对于这个问题,答案其实并不简单.成为一个Java Web开发人员包括 ...
- java管理和用户用一个入口登录_五、基于Struts的MVC案例:用户登录
通过上一部分内容的学习,我们已经能完全看懂简单的Struts程序,并且知道通过增加Action来增加业务功能的实现,通过struts.xml实现路由映射,并通过JavaBean来传递数据. 本着应用就 ...
- java bean工厂_从零构建轻量级Java Web框架
Bean工厂 回顾下前面的知识,通过加载配置文件获取应用基础包名,加载基础包名下所有的类,获取Controller,Service类.到目前为止,我们只是加载了类,但是无法通过获取的类来实例化对象.因 ...
- java 底层运行_从表面到底层丨Java和JVM的运行原理,现在带给你
Java,编程语言,被创造于90年代初,在经历了这么多年的风风雨雨,Java已经成长为世界第一的编程语言,根据往期以及目前的数据来看,Java的使用频率为全球第一,即使偶尔会有第二第三的情况,但是这依 ...
- 安卓x86程序安装目录_电脑上的安卓系统体验
分享下这几天体验的在电脑上安装的安卓系统,选用了Phoenix OS v3.0.7版本安卓系统版本号为7.1.1(没有选最新版,是因为新版本有广告,而这版可以体验到纯净的系统). 1安装方法该系统的安 ...
- java 多重属性_最全面的44个Java 性能调优细节
我认为,代码优化的最重要的作用应该是:避免未知的错误.在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因. 然而为了解决 ...
- java核心面试_前100多个核心Java面试问题
java核心面试 Core Java interview questions help you in preparing for java based interviews. Whether you ...
最新文章
- RecyclerView Adapter中notifyDataSetChanged 的作用
- 【Word】一些实用的小技巧
- Python中的类属性和类方法(静态方法、私有属性和私有方法)
- 2018下半年软考报名
- 岁月的脚步,被时间冲刷——如何修复EM ?
- 每周送新书:Python数据分析、SSM框架、Redis深度历险
- VMware安装时出现 “您无权输入许可证密钥,请使用系统管理员账户重试”解决方案
- SQL Server 负载均衡集群方案之Moebius
- 如何在WindowsXP中发短信
- nod-1089-最长回文子串 V2
- win10触控平板 如何禁掉IE10的手势控制
- 8月1号起 银行卡、支付宝、微信的这些费用可以省了!
- 图解TCP/IP之半双工全双工通信
- c语言fseek函数的总结
- PORIS门禁控制器
- 12枚硬币中取1枚假币的问题
- Lei ❤函数的初识
- 阿里云天池 - 2018之江杯全球人工智能大赛 之零样本图像目标识别 参赛总结
- 通过命令行5步声成sisx文件(Symbian)
- Qbasic 输出 星号三角形