Airtest:各平臺的剪切板功能彙總

此文章來源於項目官方公衆號:“AirtestProject”
版權聲明:允許轉載,但轉載必須保留原鏈接;請勿用作商業或者非法用途

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剪切板功能的接口,感興趣的同學可以自行網上查閱資料~)

5. 小結

至此,3大平臺的剪切板功能就介紹到這裏啦,後續同學們還想看怎樣的教程,歡迎給我們留言/投稿!


AirtestIDE下載:airtest.netease.com/
Airtest 教程官網:airtest.doc.io.netease.com/
搭建企業私有云服務:airlab.163.com/b2b

官方答疑 Q 羣:117973773

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章