让Appium跑起一个简单的demo

文章目录

  • 让Appium跑起一个简单的demo
    • demo意图
    • 废话不多说,先上代码
    • 过程中遇到的问题

让Appium跑起一个简单的demo

工欲善其事必先利其器,整个工具的环境先要搭建起来,详情请看此篇Windows下Appium环境搭建小结

demo意图

本文是我开始练习Appium的笔记总结。下边的代码实现了在手机中的计算器中自己进行运算“66x11=”

废话不多说,先上代码

package com.app.AppTest;

import java.net.MalformedURLException;
import java.net.URL;

import io.appium.java_client.AppiumDriver;

import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;

public class NewTest {
    public static void main(String[] args) throws MalformedURLException, InterruptedException {

        DesiredCapabilities capabilities = new DesiredCapabilities();
        //手机类型或模拟器类型(随便填应该也没有关系的)
        capabilities.setCapability("deviceName", "Real Device");
        //自动化测试引擎(填Appium,因为使用Appium来跑)
        capabilities.setCapability("automationName", "Appium");
        //手机操作系统iOS, Android, or FirefoxOS(我使用的是小米手机,所以填的是Android)
        capabilities.setCapability("platformName", "Android");
        //手机操作系统版本号(我的小米手机的MIUI系统没更新,所以还是7.0)
        capabilities.setCapability("platformVersion", "7.0");
        //app包名(MIUI的计算器的包名和谷歌原生的不一致,要使用使用adb命令去获取对应的Activity的名称然后获取对应的包名)
        capabilities.setCapability("appPackage", "com.miui.calculator");
        //app中启动的 Activity名称(在adb中获取到的activity的名称填进来)
        capabilities.setCapability("appActivity", ".cal.CalculatorActivity");
		
		//Appium驱动(URL要填写APP启动的主机地址,其中/wd/hub是固定写法,wd应该是webDriver的缩写,hub应该是selenium分布式里的中心节点)
        AppiumDriver driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

		//按钮的点击(一般通过AndroidSDK的uiautomatorviewer工具查看到对应的id,然后通过id来找到要点击的元素)
        driver.findElement(By.id("com.miui.calculator:id/btn_6")).click();
        driver.findElement(By.id("com.miui.calculator:id/btn_6")).click();
        driver.findElement(By.id("com.miui.calculator:id/btn_6")).click();
        driver.findElement(By.id("com.miui.calculator:id/btn_del_1")).click();
        driver.findElement(By.id("com.miui.calculator:id/btn_mul")).click();
        driver.findElement(By.id("com.miui.calculator:id/btn_1")).click();
        driver.findElement(By.id("com.miui.calculator:id/btn_1")).click();
        driver.findElement(By.id("com.miui.calculator:id/btn_equal")).click();
        Thread.sleep(1000);

        String result = driver.findElement(By.id("com.miui.calculator:id/btn_equal")).getText();
        System.out.println(result);

        driver.quit();
    }
}

过程中遇到的问题

问题1: DesiredCapabilitiesByAndroidDriver这些类都无法找到导入的包
解决方法: 各种包要导入,需要在IDE中下载好各种依赖,这个在Appium环境搭建小结有提到,可以参考
问题2: 使用By.id()之前,我是用By.name(),一直找不到对应的元素
解决方法: 可能name不是数字,我就放弃了,直接用uiautomatorviewer去查对应的id,直接用By.id()
问题总结: 代码是在别处copy的,无法直接套用;
解决方法: 先将代码全部看一遍,看完之后,哪里不懂,先问一下搜索引擎,然后在编译器上跑一下,看看是否能运行,不能运行的话,报什么错误。根据错误一个个解决问题


最近想搞一些APP自动点击完成某些任务的事情,所以开始了Appium之旅

你可能感兴趣的:(Appium,Appium)