博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
APP自動化測試腳本3
阅读量:4918 次
发布时间:2019-06-11

本文共 2754 字,大约阅读时间需要 9 分钟。

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.AfterClass;

import org.testng.annotations.BeforeClass;

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 APPTest3 {

AppiumDriver<WebElement> driver;

@BeforeClass

public void beforeClass() throws MalformedURLException, InterruptedException{

//1;添加配置

   //手工:找到设备、APPAPP某个页面

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);

  //3;找到页面元素

   //自动化:程序自动定位到页面元素

 Thread.sleep(10000);

 WebElement registerBtn = driver.findElement(By.id("d36"));

 Thread.sleep(10000);  

 registerBtn.click();

 Thread.sleep(1000);

}

@AfterClass

public void fun(){

driver.quit();

}

@Test(dataProvider = "testDatas")

  //拿到数据提供者的数据,循环这个二维数组,提取元素(一维数组),会把一维数组中的每个元素依次注入到形式参数里

  //可以把数据提供者的数据注入到测试方法的形式参数里

   public void TestCase(String nickName,String mobilPhone,String pwd ) throws MalformedURLException, InterruptedException {

  //4;操作页面元素来模拟用户操作

  //测试用例,进入注册页面,如 昵称、手机号、密码都不输入的情况,然后点击注册

  List<WebElement> elements = driver.findElements(By.id("ht"));

//每次清空

  elements.get(0).clear();

  elements.get(1).clear();

  elements.get(2).clear();

 // 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);//断言判断是否可以点击

 

 

  }

  @DataProvider

   public Object[][] testDatas(){

  

   //int[] array1 = {1,2,3,4};//静态数组

   Object[][] datas = {

{"","",""},{"shashe","",""},{"shashe","15111917843",""}};

   return datas;

   }

}

 

转载于:https://www.cnblogs.com/shashe/p/8711583.html

你可能感兴趣的文章
mysql安装及常见问题
查看>>
Thinkphp .htaccess 与 httpd.ini文件重定向转换问题
查看>>
gulp-less解决遇到错误停止执行task
查看>>
一些很少用又很常见的功能的实现方法链接
查看>>
20145235《信息安全系统设计基础》第十二周学习总结
查看>>
响应式布局 大中小屏幕
查看>>
iOS开发UI篇—transframe属性(形变)
查看>>
java中的单例模式
查看>>
Elasticsearch Server,2nd Edition pdf 翻译 中文
查看>>
Django-缓存
查看>>
[无关IT]就这样在凌晨写一篇吧~
查看>>
java.util.Map.Entry接口
查看>>
Linux中crond服务与crontab用法
查看>>
PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释...
查看>>
分享8年开发经验,浅谈个人发展经历,明确自己发展方向
查看>>
开发使用Node.js的一个小技巧
查看>>
Mike的农场 BZOJ4177
查看>>
IT职场人生系列
查看>>
如何指定个别属性进行transition过渡
查看>>
Python爬虫基础--分布式爬取贝壳网房屋信息(Client)
查看>>