首页 > 其他分享 >Airtest:各平台的剪切板功能汇总

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

时间:2024-02-25 18:00:46浏览次数:15  
标签:__ text 剪切板 汇总 bundle airtest clipboard Airtest

1. 前言一直以来,大家都还挺关注 Airtest是否有剪切板功能 的。从Airtest1.3.1版本起,我们新增了Android、iOS设备的剪切板功能,自此,3大平台的剪切板功能就齐全啦。正好趁这个机会,我们给各大平台的剪切板功能做个合集,方便同学们查阅使用~

2. Android设备的剪切板功能

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

图片

# -*- 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:

图片

但是 对于远程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 接口,支持我们执行键盘操作:

图片

# -*- 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剪切板功能的接口,感兴趣的同学可以自行网上查阅资料~)

---------------------------------------------------------------------------------

关注微信公众号即可在手机上查阅,并可接收更多测试分享~

标签:__,text,剪切板,汇总,bundle,airtest,clipboard,Airtest
From: https://www.cnblogs.com/songzhenhua/p/18032678

相关文章

  • python——面向对象——知识汇总
    面向对象技术简介类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。......
  • 集成学习算法汇总
    集成学习算法(EnsembleLearning)传统机器学习算法(例如:决策树,人工神经网络,支持向量机,朴素贝叶斯等)都是通过弱学习机(weaklearners)来对目标进行预测(分类)。但是,以决策树算法为例,决策树算法在递归过程中,可能会过度分割样本空间,最终导致过拟合。集成学习(EnsembleLearning)算法......
  • 排序算法汇总:希尔、快速、堆、归并
    排序思想分类比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。(大部分排序算法)非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序(计数......
  • 2024面试题汇总
    如可判断对象是不是空对象?1.1可以使用Object.keys(obj).length===0,判断出来没有属性1.2JSON.stringify(obj)===”{}“为true,则代表空属性1.3Object.getOwnPropertyNames获取到对象中的属性名,存到一个数组中,返回数组对象.当为空时也代表属性为空。......
  • UWA学堂汇总,看这一篇就够啦!
    学堂自成立以来,已经上线了近300门课程,涵盖了游戏开发中的多方面内容。随着课程数量的增加,如何才能更快地找到我们需要的课程呢?UWA学堂:edu.uwa4d.com 一、搜索......
  • 【更新公告】AirtestIDE更新至1.2.17版本
    1.前言本次更新为AirtestIDE、Airtest-Selenium库更新。AirtestIDE更新至1.2.17版本,AirtestIDE内置库Airtest更新为1.3.3.1版本,Poco更新为1.0.94版本,主要支持了selenium4.0以上版本,ADB更换为41版本,Airtest新增点击和滑动的相对坐标支持,Poco修复了1.0.93运行效率缓慢的问题等......
  • 苹果科技春晚!iPhone 16系列看点汇总:设计、性能和iOS都升级了
    历年的苹果特别活动都能称得上是“科技圈春晚”,不知道果粉们对今年的iPhone 15系列都满意吗?反正从市场成绩上看,iPhone15系列的销量在国内市场已经不再保持领先地位,23年12月的市场份额同比减少17.7%之多,看来不满意,没换机的果粉还是占了多数。现在的消费者们已经不再满足于简单的......
  • 绘制折线图、柱状图以及将生成的图片汇总生成大图片
    绘制柱状图importmatplotlib.pyplotdef订购时间绘图():global订购时间'''每一天的,X轴24个点位;以铃音为单位,每个日期为x轴'''color_list=["red","orange","yellow","green","blue","......
  • 前端知识汇总2(css,css2, 页面布局,移动端适配)
    固定定位(fixed)固定定位是绝对定位的一种特殊形式。它以浏览器窗口作为参照物来定义网页元素。当position属性的取值为fixed时,即可将元素的定位模式设置为固定定位。当对无素设置固定定位后,它将脱离标准文档流的控制,始终依据浏览器窗口来定义自己的显示位置。不管浏览器滚动条......
  • 知识汇总2
    树状数组——高效求前缀和(直接放板子了。。)下标点击查看代码intlowbit(intx){ returnx&(-x);}单点修改点击查看代码voidadd(inti,intk){ while(i<=n){ c[i]^=k; i+=lowbit(i); }}求和点击查看代码intgetsum(intl){ intres1=0; while(l>0){......