当前位置: 首页 > news >正文

通过USB和wifi连接真机编写第一个脚本

目录

一、连接手机

1、通过usb数据线连接手机

2、无线连接手机

二、编写第一个脚本


一、连接手机

1、通过usb数据线连接手机

数据线连接手机并允许调试 cmd命令行执行:

adb devices

如果没有显示device信息,请检查:

  • 手机是否开启usb调试
  • 更换数据线(华为手机)

2、无线连接手机

将电脑与手机处于同网络环境

执行下面命令给手机分配port:

adb -s 设备名称 tcpip 分配端口号

注意:分配的端口号不能被占用

执行下面命令连接手机

adb connect 手机ip:分配的端口号

拔掉数据线,重新开启usb调试,查看设备:adb devices

二、编写第一个脚本

1、获取appPackage & appActivity

在CMD命令行输入adb shell  进入adb命令行模式

 在adb命令行输入:logcat | grep ActivityManager   ;在启动应用,找到关键字Displayed,关键字后面即为appPackage + appActivity

 2、启动appium-desktop定位元素

下载地址:https://github.com/appium/appium-desktop/releases

定位元素

定位元素后,点击Tap模拟手动点击按钮

 在安卓7.0及以上版本,左侧图无法refresh,需要增加  desired_caps['automationName'] = 'UIAutomator2'

3、编写脚本

# coding=utf-8from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# appium服务监听地址
server = 'http://localhost:4723/wd/hub'     # localhost为本机;4723为端口;/wd/hub可以看成是规定的默认地址
# app启动参数
desired_caps = {"platformName": "Android",            # platformName:使用哪个移动操作系统平台;iOS,Android或FirefoxOS"deviceName": "dfc147f8",      # deviceName:使用的移动设备或模拟器的种类"appPackage": "com.cdsg.zgph",  # appPackage:你想运行的Android应用程序的Java包(仅限Android使用)"appActivity": ".activity.MainActivity"     # 要从包中启动的Android活动的活动名称。(仅限Android使用)
}
# 驱动
driver = webdriver.Remote(server, desired_caps)
wait = WebDriverWait(driver, 30)
# 获取权限同意按钮
permission_btn = wait.until(EC.presence_of_element_located((By.ID, "com.android.packageinstaller:id/permission_allow_button")))
# 点击权限同意按钮
permission_btn.click()

-事必有法,然后有成- 最后祝大家早日达到测试的天花板!



 以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

相关文章:

通过USB和wifi连接真机编写第一个脚本

目录 一、连接手机 1、通过usb数据线连接手机 2、无线连接手机 二、编写第一个脚本 一、连接手机 1、通过usb数据线连接手机 数据线连接手机并允许调试 cmd命令行执行: adb devices 如果没有显示device信息,请检查: 手机是否开启usb调…...

【javascript】 javascript对象函数 总结

Object.entries( ) 作用:返回一个数组,获取对象所有可枚举属性的名称 和 可枚举属性的值 const obj { a: 1, b: 2 }; const entries Object.entries(obj); console.log(entries); // [[a, 1], [b, 2]] Object.keys( ) 作用:返回一个数组…...

LVS+Keepalived 高可用群集实战部署

LVSKeepalived 高可用群集实战部署 一、Keepalived的概念1、LVS2、Keepalived及其工作原理3、Keepalived体系主要模块及其作用4、VRRP协议(虚拟路由冗余协议) 二、LVSKeepalived 高可用群集部署LVS 部署1.配置负载调度器(主、备相同&#xff…...

MCU启动过程

启动文件 启动文件到底什么作用,其实启动文件主要是进行堆栈之类的初始化, 中断向量表以及中断函数定义。启动文件要引导进入main 函数。 开发STM32F103用的启动文件是startup_stm32f10x_hd.s S32K146使用的启动文件是startup_S32K146.S 芯片架构 STM…...

Mysql 5.6使用配置文件my.ini来设置长时间连接数据库

对于已经安装了mysql和未安装都是同样的步骤。在C:\Program Files (x86)\MySQL\MySQL Server 5.6下生成一个my.ini文件。然后删除或者修改my-default.ini的名字。 一、my.ini配置文件如下 [mysqld] basedirC:\Program Files (x86)\MySQL\MySQL Server 5.6 datadirC:\Program F…...

改进YOLOv5/YOLOv8:复现结合即插即用 | 高效多尺度注意力(EMA),模块成为YOLOv5改进的小帮手

高效多尺度注意力(EMA) 论文介绍简介EMA模块图像分类实验目标检测实验yolov5加入方法yolo注册yaml文件yolov8加入方法EMA代码及加入方式yaml文件1EMA注意力论文 https://arxiv.org/ftp/arxiv/papers/2305/2305.13563.pdf 论文介绍 通道或空间的显著有效性 注意机制对产生更多…...

图像色彩增强论文调研

阅读论文 Deep Symmetric Network for Underexposed Image Enhancement with Recurrent Attentional Learning(ICCV2021) 使用对称编码器和解码器学习图像从低曝光转化到正常图片的映射方式,通过IFT(Invertible Feature Transformer)网络和提…...

ORACLE透明网关ODBC连接MYSQL

客户需求oracle访问mysql数据,客户是linux7.3 11.2.0.4单实例,字符集GBK,mysql是5.7.31,字符集UTF8,下面结合网上的文档和自己的实践,配置过程如下 1.安装oracle透明网关 首先在oracle服务器上面安装ora…...

Flutter网络请求框架Dio源码分析以及封装(二)--Cookie管理分析

Flutter网络请求框架Dio源码分析以及封装--Cookie管理分析 前言问题如何使用CookieJarCookieManagerPersistCookieJar总结 前言 上一篇文章我们简单分析了一下Dio发出请求时的大致工作流程,这个只是Dio最基本的功能,而且我们还没有分析走到httpClientA…...

Unity如何设计一个技能系统

一、技能系统的设计思路 技能系统是游戏中非常重要的一部分,因此在设计技能系统时需要考虑以下几个方面: 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬&#xff0…...

测试流程体系

目录: 软件测试基本概念软件测试模型软件测试工作流程测试左移和测试右移 1.软件测试基本概念 通过手工或者工具对"被测对象"进行测试验证实际结果与预期结果之间是否存在差异 软件测试作用 通过测试工作可以发现并修复软件当中存在的缺陷&#xff…...

Linux下CentOS KVM 虚拟化

介绍: KVM(Kernel-based Virtual Machine)是一种开源的虚拟化技术,它是基于Linux内核的虚拟化解决方案。KVM可以将一台物理服务器分割成多个虚拟机,每个虚拟机都可以运行不同的操作系统和应用程序,从而实现…...

< vue + ElementUi 组件封装:实现弹窗展示富文本数据,允许全文搜索高亮显示搜索内容 >

实现弹窗展示富文本数据,允许全文搜索高亮显示搜索内容 👉 前言👉 一、效果演示👉 二、实现思路👉 三、实现案例👍 卷王必胜!往期内容 💨 👉 前言 在 Vue elementUi 开…...

MATLAB 之 低层绘图操作和光照及材质处理

这里写目录标题 一、低层绘图操作1. 曲线对象2. 曲面对象3. 文本对象4. 其他核心对象4.1 区域块对象4.2 方框对象 二、光照和材质处理1. 光照处理2. 材质处理2.1 图形对象的反射特性2.2 material 函数 一、低层绘图操作 MATLAB 将曲线、曲面、文本等图形均视为对象&#xff0c…...

LLM-Client一个轻量级的LLM集成工具

大型语言模型(llm)已经彻底改变了我们与文本交互的方式,OpenAI、Google、AI21、HuggingfaceHub、Anthropic和众多开源模型提供了不同的功能和优势。但是每个模型都有其独特的体系结构、api和兼容性需求,集成这些模型是一项耗时且具有挑战性的任务。 所以…...

leetcode动态数组vector实现杨辉三角

链接: leetcode动态数组vector实现杨辉三角 由题意可易得,从第三行开始,除了开始和末尾的位置上的元素,其余位置上的元素都是由上方的元素以及上方左侧的元素相加得到的,此时就很容易的到从第三行开始状态转移方程为vv[i][j] vv[…...

第二十三章_Redis高性能设计之epoll和IO多路复用深度解析

before 多路复用要解决的问题 并发多客户端连接,在多路复用之前最简单和典型的方案:同步阻塞网络IO模型 这种模式的特点就是用一个进程来处理一个网络连接(一个用户请求),比如一段典型的示例代码如下。 直接调用 recv 函数从一个 socket 上读…...

基于OpenCV-车辆检测项目(简易版)

车辆检测 1.项目介绍2. 读取一段视频3.通过形态学处理识别车辆4.描画轮廓5. 车辆计数并显示 本项目使用的视频地址链接 1.项目介绍 对一个视频进行车辆数量的检测,用到的知识有视频的读取,滤波器,形态学,添加直线、文本&#xff…...

用python获取海康摄像机视频

要调用海康摄像机视频,需要使用海康SDK提供的API。以下是一个简单的示例代码,可以连接到海康摄像机并获取视频流: python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel from PyQt5.QtGui import QPixmap from PyQ…...

【Linux】遇事不决,可先点灯,LED驱动的进化之路---2

【Linux】遇事不决,可先点灯,LED驱动的进化之路---2 前言: 一、Pinctrl子系统重要概念 1.1 重要概念 1.1.1 pin controller 1.1.2 client device 1.1.3 补充概念 二、GPIO子系统重要概念 2.1 在设备树指定GPIO引脚 2.2 在驱动代码中…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...