Airtest:各平台的剪切板功能汇总

1. 前言

一直以来,大家都还挺关注 Airtest是否有剪切板功能 的。从Airtest1.3.1版本起,我们新增了Android、iOS设备的剪切板功能,自此,3大平台的剪切板功能就齐全啦。

正好趁这个机会,我们给各大平台的剪切板功能做个合集,方便同学们查阅使用~

2. Android设备的剪切板功能

Android设备的剪切板功能包含设置剪切板内容、获取剪切板内容、剪切板粘贴:

image

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"

from airtest.core.api import *
auto_setup(__file__)

text_1 = "test_clipboard"
set_clipboard(text_1) # 设置剪切板内容

get_text = get_clipboard() # 获得剪切板内容
print(get_text)  # -> test_clipboard

# 剪切板粘贴接口
paste()  # => text(get_clipboard())

3. iOS设备的剪切板功能

iOS的剪切板功能和Android是大同小异的;对于本地iOS设备,特别是本地机器上只安装了一个WDA的,我们无需在使用剪切板功能时指定WDA的bundle ID:

image

但是 对于远程iOS设备,我们必须指定定WDA的bundle ID

# 远程iOS设备

text_1 = "test_clipboard"
bundle_id = "com.2303xxxxxxxxx.WebDriverAgentRunner.xctrunner"

set_clipboard(text_1,bundle_id) # 设置剪切板内容

get_text = get_clipboard(bundle_id) # 获得剪切板内容
print(get_text)  # -> test_clipboard

# 剪切板粘贴接口
paste(bundle_id)  # => text(get_clipboard())

否则会出现如下的报错:

Traceback (most recent call last):
  File "airtest\cli\runner.py", line 75, in runTest
  File "site-packages\six.py", line 703, in reraise
  File "airtest\cli\runner.py", line 72, in runTest
  File "D:\demo\untitled.air\untitled.py", line 9, in <module>
    set_clipboard(text_1) # 设置剪切板内容
  File "airtest\utils\logwraper.py", line 131, in wrapper
  File "airtest\core\api.py", line 698, in set_clipboard
  File "E:\AirtestIDE-win-1.2.16\AirtestIDE\airtest\core\ios\ios.py", line 47, in wrapper
    return func(self, *args, **kwargs)
  File "E:\AirtestIDE-win-1.2.16\AirtestIDE\airtest\core\ios\ios.py", line 956, in set_clipboard
    e.g. set_clipboard('content', 'wda_bundle_id').")
RuntimeError: Remote device need to set running wda bundle id parameter,                                     e.g. set_clipboard('content', 'wda_bundle_id').

----------------------------------------------------------------------
Ran 1 test in 2.169s

FAILED (errors=1)
[Finished]
1)小tips:关于如何获取WDA的bundle ID

我们可以使用Airtest1.3.0新增的iOS接口来查询:

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"

from airtest.core.api import *
import airtest
auto_setup(__file__)

dev = device()

#列出并打印用户安装的APP
print("---------以下是用户安装的APP的信息-----------")
user_app = dev.list_app("user")
print(user_app)

此时,我们安装在手机上的WDA信息也会被打印出来,不过 该方式只能适用于本地的iOS设备

4. Windows平台的剪切板功能

对于Windows应用,Airtest虽然没有封装专门的剪切板功能,但其实我们都知道,Windows平台的复制粘贴就是键盘操作 “Ctrl+C”、“Ctrl+V”,并且Airtest封装有 keyevent 接口,支持我们执行键盘操作:

image

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"

from airtest.core.api import *
auto_setup(__file__)

text("11111111")

# 模拟按键Ctrl+A,实现全选文本
keyevent("^a")

# 模拟按键Ctrl+C,实现复制文本
keyevent("^c")

# 回车换行
keyevent("{ENTER}")

# 模拟按键Ctrl+V,实现复制文本
keyevent("^v")

(其实,pywin32 的模块里面也有一些现成的关于Windows剪切板功能的接口,感兴趣的同学可以自行网上查阅资料~)

5. 小结

至此,3大平台的剪切板功能就介绍到这里啦,后续同学们还想看怎样的教程,欢迎给我们留言/投稿!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/156294.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTTP Error 500.31 - Failed to load ASP.NET Core runtime

在winserver服务器上部署net6应用后&#xff0c;访问接口得到以下提示&#xff1a; 原因是因为没有安装net6的运行时和环境&#xff0c;我们可以在windows自带的 “事件查看器” 查看原因。 可以直接根据给出的地址去官网下载sdk环境&#xff0c;安装即可 下载对应的net版本…

OmniGraffle Pro v7.22.3(流程图UML图)

OmniGraffle Pro是一款非常棒的绘图软件&#xff0c;具有多种功能&#xff0c;包括&#xff1a; 绘制图表&#xff1a;OmniGraffle Pro可以创建各种类型的图表&#xff0c;包括流程图、组织图、UML图、网络图等等。它还支持导入和导出多种文件格式&#xff0c;如PDF、SVG、Vis…

小程序商城免费搭建之java商城 电子商务Spring Cloud+Spring Boot+二次开发+mybatis+MQ+VR全景+b2b2c

1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

阿桂天山的小工具:我将16个Excel文件中31万多条数据拆分成318个文件

1.话不多说,先上图看效果 2.技术说明及实用源码 2.1)pythonflaskpandas , 由于我的开发环境版本问题,为了能读xls,xlsx,但又不想升级,只能通过xlrd 1.2.0读取xls,xlsx文件再转换成dict字典格式,再通过 data pd.DataFrame(dict_data)实现类型转换 2.2)实用代码,保证不丢任何一行…

一个美观且功能丰富的 .NET 控制台应用程序开源库

推荐一个美观且功能丰富的 .NET 控制台应用程序开源库&#xff0c;从此告别黑漆漆的界面。 01 项目简介 Spectre.Console 是一个开源的 .NET 库&#xff0c;用于创建美观、功能丰富的控制台&#xff08;命令行&#xff09;应用程序。它提供了一组易于使用的 API&#xff0c;…

“具有分布式能源资源的多个智能家庭的能源管理的联邦强化学习”文章学习三——基于联邦深度学习的多智能家居能源管理

一、系统描述 我们考虑一个基于FRL的HEMS&#xff0c;它由单个GS和N个LHEMS组成&#xff0c;如图2所示。如图2-C所示&#xff0c;FRL训练过程包括两个步骤&#xff1a;步骤1&#xff09;使用本地数据对LHEMS&#xff08;即本地神经网络的权重ωn&#xff09;进行本地模型的训练…

全网首位数字军人“穆兰”惊艳亮相,与拓世法宝共同绘就未来社会图景

古有穆桂英、花木兰挂帅出征&#xff0c;今有全网首位虚拟数字军人“穆兰”展巾帼风采。今年国庆节后&#xff0c;中国军号在全网为解放军新闻传播中心数字记者暨全军首位超写实虚拟数字军人征名&#xff0c;历时一个多月&#xff0c;经过征名提交、评委初评、公众投票、专家共…

一种基于NB‑IOT的粮库挡粮门异动监测装置

一种基于NB‑IOT的粮库挡粮门异动监测装置,包括若干个NB‑IOT开门监测装置、物联网后台管理系统、NB‑IOT低功耗广域网络和用户访问终端;各个NB‑IOT开门监测装置通过NB‑IOT低功耗广域网络与物联网后台管理系统连接,物联网后台管理系统与用户访问终端连接。 我国以往粮食收储…

类BERT模型蒸馏原理

如果你曾经训练过 BERT 或 RoBERTa 等大型 NLP 模型&#xff0c;就就会知道这个过程非常漫长。 由于此类模型规模庞大&#xff0c;训练可能会持续数天。 当需要在小型设备上运行它们时&#xff0c;可能会发现你正在为当今不断提高的性能付出巨大的内存和时间成本。 幸运的是&a…

基于单片机设计的电子指南针(LSM303DLH模块(三轴磁场 + 三轴加速度)

一、前言 本项目是基于单片机设计的电子指南针&#xff0c;主要利用STC89C52作为主控芯片和LSM303DLH模块作为指南针模块。通过LCD1602液晶显示屏来展示检测到的指南针信息。 在日常生活中&#xff0c;指南针是一种非常实用的工具&#xff0c;可以帮助我们确定方向&#xff0…

如何创建react项目

可以直接通过react脚手架进行创建 首先确保自己是否安装了create-react-app npm install -g create-react-app 如果安装不成功有可能是有缓存&#xff0c;可以先清除缓存再重新安装 npm cache clean --force 安装成功后就可以使用脚手架创建自己的项目,my-react就是我的项…

项目架构设计说明书编制

目录 项目名称 1 简介 1.1 目的 1.2 范围 1.3 术语及缩略语 1.4 引用文档 1.5 概述 2 构架表示方式 3 构架目标和约束 4 用例视图 4.1 用例实现 5 逻辑视图 5.1 概述 5.2 在构架方面具有重要意义的设计包 5.3 内部接口设计与协作机制 5.4 对外接…

mysql 中with的用法(3)

有表&#xff08;tb&#xff09;,数据如下&#xff1a; 请用SQL,生成如下的样式&#xff1a; 一、建表 CREATE TABLE tb (id varchar(3) DEFAULT NULL,pid varchar(3) DEFAULT NULL,name varchar(64) DEFAULT NULL ) INSERT INTO tb (id, pid, name) VALUES(002, 0, 浙江省)…

场效应管(MOSFET)笔记-nmos和pmos仿真测试

一、场效应管的介绍 场效应管是一种半导体器件&#xff0c;它可以用来放大或者控制电流。根据结构的不同&#xff0c;场效应管可以分为结型场效应管&#xff08;JFET&#xff09;和绝缘栅场效应管&#xff08;MOSFET&#xff09;。其中&#xff0c;JFET是由一个pn结构组成&…

系列二、垃圾

一、什么是垃圾 简单的说&#xff0c;垃圾就是内存中已经不再被使用到的空间就是垃圾。 二、 如何判断一个对象是否可以被回收 2.1、引用计数法 Java中&#xff0c;引用和对象是有关联的&#xff0c;如果要操作对象则必须要用引用进行。因此判断一个对象是否可以被回收&#x…

21款奔驰E300L升级HUD抬头显示 绚丽多彩的展示

随着科技飞速地发展&#xff0c;从汽车领域就可以看出&#xff0c;尤其是汽车的抬头显示器&#xff0c;一经推出就吸引了很多的车主。 升级HUD抬头显示&#xff0c;HUD与汽车系统进行完整的数据信息连接&#xff0c;整合成大数据&#xff0c;然后将一些重要信息映射到车窗玻璃…

2243. 计算字符串的数字和

2243. 计算字符串的数字和 Java&#xff1a;以 k 为步长进行跳&#xff01;然后再延伸k class Solution {public String digitSum(String s, int k) {while (s.length() > k) {int n s.length();StringBuilder sb new StringBuilder(); // sb存&#xff01;for (int i …

禁止文件外发,企业文件禁止外发

禁止文件外发&#xff0c;企业文件禁止外发 禁止文件外发是企业信息安全策略中的一项重要措施&#xff0c;用于防止敏感数据或机密文件被员工无意或有意地传送到外部&#xff0c;也是企业数据防泄密的一种方法&#xff0c;从而保护企业数据的安全性和保密性。 下载使用安企神…

PDF控件Spire.PDF for .NET【转换】演示:将PDF 转换为 HTML

由于各种原因&#xff0c;您可能想要将 PDF 转换为 HTML。例如&#xff0c;您需要在社交媒体上共享 PDF 文档或在网络上发布 PDF 内容。在本文中&#xff0c;您将了解如何使用Spire.PDF for .NET在 C# 和 VB.NET 中将 PDF 转换为 HTML。 Spire.Doc 是一款专门对 Word 文档进行…

【鸿蒙应用ArkTS开发系列】- 云开发入门简介

目录 概述开发流程工程概览工程模板工程结构 工程创建与配置 概述 HarmonyOS云开发是DevEco Studio新推出的功能&#xff0c;可以让您在一个项目工程中&#xff0c;使用一种语言完成端侧和云侧功能的开发。 基于AppGallery Connect Serverless构建的云侧能力&#xff0c;开发…