首页 > 其他分享 >Rust+appium App自动化测试demo

Rust+appium App自动化测试demo

时间:2023-09-25 11:55:09浏览次数:28  
标签:cargo appium demo App use caps add client

1.新建工程

打开RustCover,新建工程如下:

修改Cargo.toml文件如下:

[package]
name = "test_demo"
version = "0.1.0"
edition = "2021"
 
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
[dependencies]
tokio = "1.32.0"
appium-client = "0.2.0"

然后在终端输入cargo build,构建完成后点击刷新按钮即可应用安装的依赖库

或者直接在终端输入如下命令添加所需的依赖库:

cargo add tokio
cargo add appium-client

2.编写代码

在main.rs文件编写如下代码:

use appium_client::ClientBuilder;
use appium_client::capabilities::*;
use appium_client::capabilities::android::AndroidCapabilities;
use appium_client::find::By;
use appium_client::wait::AppiumWait;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut caps = AndroidCapabilities::new();
    caps.platform_version("10");
    caps.device_name("ZL5227R9TD");
    caps.automation_name("UiAutomator2");
    caps.app_package("vidma.video.editor.videomaker");
    caps.app_activity("com.atlasv.android.mvmaker.mveditor.LaunchActivity");
    caps.no_reset(true);
    caps.full_reset(false);
    let client = ClientBuilder::native(caps).connect("http://127.0.0.1:4723/wd/hub/").await?;
    let add_button = client.appium_wait().for_element(By::id("ivAdd")).await?;
    add_button.click().await?;
    Ok(())
}

标签:cargo,appium,demo,App,use,caps,add,client
From: https://www.cnblogs.com/wanyuan/p/17727645.html

相关文章

  • 波场(Tron)USDT 合约授权(Approve)以及授权转账(TransferFrom)
    授权(Approve)privatestaticasyncTask<string>ApproveAsync(stringprivateKey,stringspenderAddress,decimalamount){ conststringcontractAddress="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t";//合约地址 varrecord=TronServiceExtension.GetRecor......
  • Spring扩展接口(1):ApplicationContextInitializer
    在此系列文章中,我总结了Spring扩展接口,以及各个扩展点的使用场景。并整理出一个bean在spring中从被加载到初始化到销毁的所有可扩展点的顺序调用图。这样,我们也可以看到bean是如何一步步加载到spring容器中的。ApplicationContextInitializerorg.springframework.context.App......
  • Angular APP_INITIALIZER Injection Token 的使用方法介绍
    import{APP_INITIALIZER}from'@angular/core'这行代码在Angular中的作用是导入名为APP_INITIALIZER的常量,它来自Angular核心模块@angular/core。APP_INITIALIZER是一个重要的Angular特性,它用于执行一系列初始化操作,通常用于配置应用程序之前执行一些必要的任务。......
  • uniapp 小程序生成erweima
    下载uqrcode.js文件https://download.csdn.net/download/weixin_46162592/88215531?spm=1001.2014.3001.5503下载好后,将文件夹放置common文件中,这个放置位置看你们自己需求,一般是common里面。importuQRCodefrom'@/common/uqrcode.js'html<template><view><canvas......
  • 新版绿豆视频APP视频免授权源码 V6.6插件版
    简介:新版绿豆视频APP视频免授权源码插件版后端插件开源,可直接反编译修改方便对接苹果cms,自定义DIY页面布局!绿豆影视APP对接苹果cms所有页面皆可通过后端自由定制此版本后端源码+前端是壳(反编译版本)五款个人中心主题自由切换个人中心背景图后台可控后台控制幻灯片背景虚幻支持信......
  • APP闪退的原因
    前言 在日常生活中,我们会经常使用各种应用程序,偶尔也会遇到软件崩溃的情况,这已经成为了司空见惯的事情。然而,对于一个产品开发者来说,这样的用户体验显然是很糟糕的,大概率会导致用户流失,收益减少。这就要求我们测试人员要尽最大可能去发现软件中的缺陷,以减少应用程序崩溃的可能......
  • golang 使用redis设置分布式锁 demo
    内容来自对chatgpt的咨询分布式锁是在多个节点上运行的应用程序中协调工作的一种常用方法,而Redis是实现分布式锁的流行选择。以下是使用Go语言和github.com/go-redis/redis库来设置Redis分布式锁的一个简单示例:首先,确保你已经安装了该库:goget-ugithub.com/go-redis/redi......
  • java.mapperUtils
    packagecom.yh.util;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importjava.io.IOException;importja......
  • Qemu源码分析(7)--Apple的学习笔记
    一,前言今天继续分析主要的api,包括了printlog和属性add及set,因为对于不同对象的操作,主要就是靠属性值设置及判断使用。二,源码分析A,关于qemu中自带的-d的log需要传入的参数主要通过-d然后传入的参数如下第2个成员,比如out_asmconstQEMULogItemqemu_log_items[]={{CPU_LOG_TB......
  • Global Mapper(地图绘制)下载_生成地形图 各个版本下载
    GlobalMapper21是一款实用的桌面GIS应用程序,包含丰富的空间数据处理工具、3D渲染和高程工具、地形修改工具和GPS数据管理工具等,可以将数据转化成光栅地图、高程地图或矢量地图,同时还具有GIS数据的编辑、转换、打印和记录等功能,支持超过250种文件格式。GlobalMapper21带来了新的......