参考官方描述,需要打开Springboard,且确保 WDA 可见,以此打开 WDA,然后调用获取剪贴板的接口,最后再返回原来的待测APP:
例子:
self.driver.activate_app('com.apple.springboard')
self.driver.find_element_by_accessibility_id('WebDriverAgentRunner-Runner').click()
pasteboard_text =self.driver.get_clipboard_text()
self.driver.activate_app(bundle_id_of_app_to_test) # 此处参数为待测APP的bundleid
注意:升级到iOS16以后,开始出现粘贴弹窗提示,可以搭配auto_accept_alerts和acceptAlertButtonSelector使用,在弹出弹窗时自动点击“允许粘贴”
初始化时设置auto_accept_alerts为true(以下为Appium2.0版本,若为1.x的版本,则设置desired capabilities)
options = XCUITestOptions()
options.auto_accept_alerts =True
。。。(此处省略其他设置项)
driver = ...
# 设置settings中的acceptAlertButtonSelector,如果不设置此项,只设置auto_accept_alerts为true,则默认会点中“不允许粘贴”
driver.update_settings({'acceptAlertButtonSelector': '**/XCUIElementTypeButton[`label == "允许粘贴"`]'})
当出现过粘贴提示后,也可以从系统设置中看到WebDriveragentRunner中多出了一个“从其他App粘贴”的选项(如图),设置为允许,可以避免后续测试时总是弹出弹窗