如何在各大平台下“模拟输入空格”

简介: 如何在各大平台下“模拟输入空格”

网络异常,图片无法展示
|


1. 前言



Airtest和Poco自动化框架分别提供了 text 接口和 set_text 接口帮助我们 实现文本输入的操作


但部分特殊字符,比如同学们经常问到的空格,使用这两个接口并不一定完全能满足我们的期望,所以下文我们将详细介绍这两个关于文本输入的接口,并介绍我们该如何 在各大平台下模拟输入空格


2. 输入文本的接口介绍



1)Airtest的text接口


Airtest API文档中查看我们的 text 接口,可以获取以下信息:


网络异常,图片无法展示
|


text 接口是一个跨平台的接口,支持Android、Windows和iOS平台。


① 输入前激活文本输入框


在文本框使用 text 进行输入操作之前,我们必须激活文本框,也就是我们通常在输入操作之前,会点击一下文本框,使输入光标激活在文本框内:


# 点击激活文本框,也可以是touch操作
poco("SearchField").click()
# 输入文本
text("网易 云音乐",enter=False)
复制代码


② 输入后的回车操作


text 接口默认情况下,会在输入完毕后执行一次回车(ENTER)操作。在Android平台下,回车的表现可能是搜索操作;在iOS平台下,回车的表现可能是换行操作......


如果同学们不需要在输入完毕后执行回车动作,可以设置 enter=False :


text("message",enter=False)
复制代码


③ 输入后的搜索操作


部分Android的搜索输入框,在执行文本输入之后,需要点击键盘的搜索按钮才能触发搜索的动作,所以在Android平台下,我们的 text 接口新增了1个参数 search ,用于支持这种情况:


text("test", search=True)
复制代码
2)Poco的set_text接口


Poco API文档中查看 set_text 接口,我们可以知道它可以用来设置控件的文本属性。


网络异常,图片无法展示
|


比如我们使用 set_text 接口,给某个文本输入框设置了文本属性,则达到了输入文本的目的。使用这个输入文本还有一个好处,就是我们使用 poco("文本框").set_text(" ") 就能快速清空文本框的内容。


3)关于选择text还是set_text进行输入


我们只需要记住一点:文本框支持哪个输入,我们就选择哪个接口。因为平台和文本框的多样化,我们很难保证 text 接口能完全支持所有的输入框,同理,set_text 也是如此。


当我们在某个文本框,使用 text 接口无法输入时,我们可以看看能否使用Poco的 set_text 接口,可以的话,我们就尝试更换成 set_text 来执行文本输入操作。


但有一点,如果文本框支持Poco的 set_text ,并且我们需要执行清空文本框的内容,这时我们使用 set_text 的置空,将非常方便快捷:


poco("文本框").set_text(" ")
复制代码


3. 在Android平台下输入空格



Airtest和Poco框架都支持Android原生应用,所以我们支持使用 text 或者 set_text 接口来输入文本和空格:


# text输入
text("薛之谦 天外来物")
sleep(1.0)
# 删除
for i in range(10):
    keyevent("67")
# set_text输入    
poco("com.netease.cloudmusic:id/search_src_text").set_text("薛之谦 天外来物")
sleep(1.0)
# set_text置空
poco("com.netease.cloudmusic:id/search_src_text").set_text(" ")
复制代码


网络异常,图片无法展示
|


4. 在iOS平台下输入空格



理论上,Airtest和Poco都支持iOS原生应用,我们可以使用 text 接口和 set_text 接口来进行输入操作;但是因为大部分iOS的输入框都不支持直接设置text属性,所以在iOS平台下,我们还是常用Airtest的 text 接口来输入文本和空格:


# text输入
text("网易 云音乐",enter=False)
sleep(1.0)
# 删除
for i in range(10):
    text("\b",enter=False)
复制代码


网络异常,图片无法展示
|


5. 在Windows平台下输入空格



在上文中我们已经知道,text 是跨平台的API,支持Windows平台;但Poco暂时还不支持Windows窗口(除了已经接入Poco-SDK的游戏窗口)。


所以我们优先选择使用Airtest的 text 接口在Windows平台下输入空格,尝试如下:


# 中文输入
text("薛之谦 天外来物")
for i in range(10):
    keyevent("{BACK}")
# 纯英文输入
text("Love Story")
复制代码


网络异常,图片无法展示
|


发现这样并不会按照预期输入我们想要的空格,所以我们需要尝试别的方法,比如利用Windows平台下的 keyevent 键码:


# 中文输入
text("薛之谦",enter=False)
keyevent("{VK_SPACE}")
text("天外来物")
sleep(1.0)
for i in range(10):
    keyevent("{BACK}")
# 纯英文输入
text("Love{VK_SPACE}Story")
复制代码


网络异常,图片无法展示
|


可以看到效果符合我们的预期,更多Windows平台下的keyevent键码,我们可以参考 pywinauto.keyboard 模块的内容:pywinauto.readthedocs.io/en/latest/c…


6. 小结



简单回顾下,在Android和iOS平台下,我们给 text 或者 set_text 接口传入的字符串带空格,接口会按照预期帮我们输入这个空格;但在Windows平台下,我们就需要借助keyevent键码 "{VK_SPACE}" 来帮助我们输入空格。

相关文章
|
机器学习/深度学习 Web App开发 传感器
数字人凭啥能干这些?阿里巴巴让我开眼了
数字人凭啥能干这些?阿里巴巴让我开眼了
284 0
数字人凭啥能干这些?阿里巴巴让我开眼了
|
21天前
|
人工智能 自然语言处理 并行计算
EchoMimicV2:阿里推出的开源数字人项目,能生成完整数字人半身动画
EchoMimicV2是阿里蚂蚁集团推出的开源数字人项目,能够生成完整的数字人半身动画。该项目基于参考图片、音频剪辑和手部姿势序列,通过音频-姿势动态协调策略生成高质量动画视频,确保音频内容与半身动作的一致性。EchoMimicV2不仅支持中文和英文驱动,还简化了动画生成过程中的复杂条件,适用于虚拟主播、在线教育、娱乐和游戏等多个应用场景。
165 5
EchoMimicV2:阿里推出的开源数字人项目,能生成完整数字人半身动画
|
6月前
|
C#
技术经验分享:c#拆分字符串英文和数字(包括国外所以文字)
技术经验分享:c#拆分字符串英文和数字(包括国外所以文字)
37 0
技术经验分享:c#拆分字符串英文和数字(包括国外所以文字)
|
7月前
|
人工智能 搜索推荐 固态存储
|
7月前
|
人工智能
|
移动开发 Java Devops
「数字体验平台」Liferay数字体验平台(DXP)的好处
「数字体验平台」Liferay数字体验平台(DXP)的好处
|
移动开发 Java Devops
「数字体验」Liferay数字体验平台(DXP)的好处
「数字体验」Liferay数字体验平台(DXP)的好处
|
安全
数字藏品开发丨数字藏品APP系统开发(逻辑及方案)丨数字藏品源码功能及分析
 Digital collections are digital works,works of art and commodities that use blockchain technology to identify the ownership of rights and interests.Digital collections can mark their owners in the blockchain network and trace their subsequent circulation,including but not limited to digital picture
|
存储 区块链
什么是数字藏品系统开发方案丨数字藏品系统开发(成熟案例及源码)
 function swapExactETHForTokens(uint amountOutMin,address[]calldata path,address to,uint deadline)
|
存储 区块链 数据安全/隐私保护
NFT数字藏品系统 | 数字藏品系统开发详解案例 | 数字藏品现成源码
什么是数字藏品?   数字藏品是指使用区块链技术,对应特定的作品、艺术品,如包括但不限于数字图片、音乐、视频、3D模型、电子票证、数字纪念品等各种形式生成的具有唯一性、可证明的稀缺性、不可分割性的数字凭证,在保护其数字版权的基础上,实现真实可信的数字化发行、购买、收藏和使用。

热门文章

最新文章