• 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;添加配置

       //手工:找到设备、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);

    }

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

       }

    }

  • 相关阅读:
    c++中结构体的使用
    指针、引用、引用和函数参数、引用和const、const 和 #define、#define的特殊用途
    用eclipice抓取JS代码
    UITableView读取plist文件
    GameKit框架简介、通过蓝牙实现对等网络连接
    照片选择步骤及部分代码
    通知(消息)机制(本地推送和远程推送及实现步骤)
    游戏中心-内购—应用内购买修改应用程序信息
    粒子效果的使用建议、粒子编辑器各属性说明
    如何判断用户是否登录
  • 原文地址:https://www.cnblogs.com/shashe/p/8711572.html
Copyright © 2020-2023  润新知