IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> [Appium] 第一个Mac安卓测试小脚本 -> 正文阅读

[移动开发][Appium] 第一个Mac安卓测试小脚本

1.打开mumu模拟器

?自行设置尺寸像手机屏幕,我的是宽520 高820

2. 打开Appium Server GUI

直接点击启动服务

3. 使用idea或eclipse创建空maven项目jdk选1.8并添加如下依赖


    <dependencies>
        <!-- appium的依赖-->
        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>1.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.4</version>
        </dependency>
    </dependencies>

4. 下面是我写的测试脚本,测试app是企业微信(安装包官网自行下载)

package com.minhw;

import io.appium.java_client.AppiumDriver;
//import io.appium.java_client.AndroidKeyCode;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.UnreachableBrowserException;

public class Main {
    
    /**
     * 所有和AppiumDriver相关的操作都必须写在该函数中
     * @param driver
     */
    public void test(AppiumDriver driver) {
        try {
            Thread.sleep(6000);		//等待6s,待应用完全启动
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS); //设置尝试定位控件的最长时间为8s,也就是最多尝试8s
        /*
         * 余下的测试逻辑请按照题目要求进行编写
         */
        driver.findElement(By.xpath("//*[@text='工作台']")).click();
//		(JavascriptExecutor)
//		driver.executeScript("mobile: scrollTo", new HashMap<String, String>() {{
//			put("element", driver.findElement(By.xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[1]")).getText());
//			}});
        int width = driver.manage().window().getSize().width;
        int height = driver.manage().window().getSize().height;
//        System.out.println(width);
//        System.out.println(height);
        for (int i = 0; i < 2; i++) {
            driver.swipe(width / 2, height * 3 / 4, width / 2, height / 4, 100);
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        WebElement ricElement = driver.findElement(By.xpath("//*[@text='日程']"));
        ricElement.click();

        driver.findElement(By.xpath("//*[@resource-id=\"com.tencent.wework:id/icw\"]/android.widget.RelativeLayout[2]/android.widget.RelativeLayout[1]/android.widget.TextView[1]")).
                click();
        driver.findElement(By.xpath("//*[@resource-id=\"com.tencent.wework:id/ix0\"]/android.widget.RelativeLayout[2]")).
                click();
//		        nr
        driver.findElement(By.xpath("//*[@resource-id=\"com.tencent.wework:id/bqv\"]")).
                click();
        driver.findElement(By.xpath("//*[@resource-id=\"com.tencent.wework:id/bqv\"]")).
                sendKeys("这是一个待办test");
//		        ren
        driver.findElement(By.xpath("//*[@resource-id=\"com.tencent.wework:id/isw\"]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[1]")).

                click();
        try {
            driver.findElement(By.xpath("//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.ListView[1]/android.widget.RelativeLayout[4]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[2]/android.view.ViewGroup[1]/android.widget.ImageView[1]")).click();
        } finally {
            // TODO: handle finally clause
            driver.findElement(By.xpath("//*[@resource-id=\"com.tencent.wework:id/hkb\"]")).click();
//					选人确定
        }
        driver.findElement(By.id("com.tencent.wework:id/ist")).click();
        driver.findElement(By.id("com.tencent.wework:id/inp")).
                click();
        int width1 = driver.manage().window().getSize().width;
        int height1 = driver.manage().window().getSize().height;
        System.out.println(width1);
        System.out.println(height1);
        for (int i = 0; i < 1; i++) {
            driver.swipe(width1 / 2, height1 * 3 / 4, width1 / 2, height1 / 4, 100);
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        driver.findElement(By.xpath("//*[@resource-id=\"com.tencent.wework:id/ckm\"]")).

                click();

        driver.findElement(By.xpath("//*[@resource-id=\"com.tencent.wework:id/iv0\"]")).

                click();

        try {
            driver.findElement(By.xpath("//*[@resource-id=\"com.tencent.wework:id/iti\"]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]")).click();
            System.out.println("日程保存成功");
        } catch (
                Exception e) {
            // TODO: handle exception
            System.err.println("日程保存失败");
        }
    }

    /**
     * AppiumDriver的初始化逻辑必须写在该函数中
     *
     * @return
     */
    public AppiumDriver initAppiumTest() {

        AppiumDriver driver = null;
//        File classpathRoot = new File(System.getProperty("user.dir"));
//        File appDir = new File(classpathRoot, "apk");
//        File app = new File(appDir, "qichezhijia.apk");

        // 设置自动化相关参数
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("browserName", "");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("deviceName", "Android Emulator");
        capabilities.setCapability("platformVersion", "6.0.1");
        capabilities.setCapability("appPackage", "com.tencent.wework");
        capabilities.setCapability("appActivity", ".launch.LaunchSplashActivity");
//        capabilities.setCapability("noSign", "true");

        // 设置apk路径
//        capabilities.setCapability("app", app.getAbsolutePath());

        // 设置使用unicode键盘,支持输入中文和特殊字符
        capabilities.setCapability("unicodeKeyboard", "true");
        // 设置用例执行完成后重置键盘
        capabilities.setCapability("resetKeyboard", "true");
        // 初始化
        try {
            driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return driver;
    }

    public void start() {
        test(initAppiumTest());
    }

    public static void main(String[] args) {
        Main main = new Main();
        main.start();
    }

}

?目录结构如下图

?5. 最后运行main就开始执行脚本了。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 18:57:11  更:2021-11-16 18:57:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:06:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码