APP自動化測試腳本2
package com.lemon.day01;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
public class APPTest2 {
AppiumDriver<WebElement> driver;
@BeforeMethod
public void beforeMethod() throws MalformedURLException{
//1;添加配置
//手工:找到设备、APP、APP某个页面
DesiredCapabilities desiredcapabilities = new DesiredCapabilities();
desiredcapabilities.setCapability("deviceName","127.0.0.1:52001");//设备名
desiredcapabilities.setCapability("appPackage","com.tencent.mm");//app包,区别我们每台设备的app
//使用命令:adb shell dumpsys activity | find "mFocusedActivity"
desiredcapabilities.setCapability("appActivity","com.tencent.mm.ui.LauncherUI");//指定页面
//2;创建驱动
//remoteAddress:远程url地址
//desiredCapablites :这个驱动期望得到的能力
URL remoteAddress = new URL("http://127.0.0.1:4723/wd/hub");//固定不变的
driver = new AndroidDriver<WebElement>(remoteAddress,desiredcapabilities);
}
@Test(dataProvider = "testDatas")
//拿到数据提供者的数据,循环这个二维数组,提取元素(一维数组),会把一维数组中的每个元素依次注入到形式参数里
//可以把数据提供者的数据注入到测试方法的形式参数里
public void TestCase(String nickName,String mobilPhone,String pwd ) throws MalformedURLException, InterruptedException {
//3;找到页面元素
//自动化:程序自动定位到页面元素
Thread.sleep(10000);
WebElement registerBtn = driver.findElement(By.id("d36"));
Thread.sleep(10000);
registerBtn.click();
Thread.sleep(1000);
//4;操作页面元素来模拟用户操作
//测试用例,进入注册页面,如 昵称、手机号、密码都不输入的情况,然后点击注册
List<WebElement> elements = driver.findElements(By.id("ht"));
// WebElement nickNameInput = driver.findElement(By.id("ht"));
//nickNameInput.sendKeys("");//输入字符串
elements.get(0).sendKeys(nickName);
// WebElement mobilPhoneInput = driver.findElement(By.id("ht"));
// mobilPhoneInput.sendKeys("");
elements.get(1).sendKeys(mobilPhone);
// WebElement pwdInput = driver.findElement(By.id("ht"));
//pwdInput.sendKeys("");
elements.get(2).sendKeys(pwd);
WebElement registerBtnn = driver.findElement(By.id("cw1"));
boolean isEnabled = registerBtnn.isEnabled();//是否被激活
Assert.assertFalse(isEnabled);//断言判断是否可以点击
driver.quit();
}
@DataProvider
public Object[][] testDatas(){
//int[] array1 = {1,2,3,4};//静态数组
Object[][] datas = {{"","",""},{"shashe","",""},{"shashe","15111917843",""}};
return datas;
}
}
最新文章
- win7系统下的飞秋发送文件失败问题
- jQuery实现的简单小功能(实用)
- Xstream解析XML
- linux命令之 top, free,ps
- 如何向Openstack社区提交一个新项目
- C#中的Linq to Xml详解
- Javascript Math ceil()、floor()、round()三个函数的区别
- jquery获取iframe中的dom对象
- 【转】vs2008中leptonica-1.68安装配置
- 有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。 请描述实现算法,并指出算法复杂度
- Delphi TStream 详细介绍
- 删除bin后,Eclipse重新编译项目
- eclipse myeclipse中的一些配置
- 2017.2.6Redis连接问题排查
- Django中的auth模块
- Django-urls路由系统
- 关键字提取算法TF-IDF和TextRank(python3)————实现TF-IDF并jieba中的TF-IDF对比,使用jieba中的实现TextRank
- Java基础-多线程-②多线程安全问题
- ACM札记
- hdu 6041 I Curse Myself 无向图找环+优先队列
热门文章
- SpringBoot进阶教程(六十一)intellij idea project下建多个module搭建架构(下)
- 导入 SQL 时出现 Invalid default value for &#39;create_time&#39; 报错解决方法
- js遍历API总结
- ionic $state.go() 传参
- 【原创】为什么Redis集群有16384个槽
- CocosBuilder 学习笔记(1) CCBReader 解析.ccbi文件流程
- 朋友聚会,下馆子要到哪家饭馆?——单样本T检验帮你找到答案
- ElementUI使用v-if控制tab标签显示遇到的Duplicate keys detected: &#39;xxx&#39;问题
- Monad 在实际开发中的应用
- 基于SSM的在线考试系统