appium iOS真机获取剪贴板内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了appium iOS真机获取剪贴板内容相关的知识,希望对你有一定的参考价值。

参考技术A 参考官方描述,需要打开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

Appium+iOS真机环境搭建

安装目录

1.macOS系统  10.14.6

2.xcode  11.3.1

3.appium Desktop  1.15.1

4.node.js

查看版本:node -v

npm

5.cnpm

sudo npm install -g cnpm --registry=https://registry.npm.taobao.org

6.sudo  cnpm install -g ios-deploy

----不使用Xcode安装和调试iOS应用程序。设计用于处理未越狱的设备。

7.homebrew

--Homebrew或者brewMac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件

usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew -v

8.libimobiledevice

--使用本机与苹果iOS设备的服务进行通信的库协议。

brew install libimobiledevice --HEAD   #和iOS手机通讯使用
brew install ideviceinstaller   # 安装app使用

 

9.carthage

----Carthage 是用来解决 xcode project 依赖的,下载ocnodejs依赖。

brew install carthage

查看版本命令:carthage version

10.WebDriverAgent

WebDriverAgent简称WDA。它是由Facebook推出的一款移动端测试框架,基于苹果的UIAutomation。appium基于WebDriverAgent。

 

git clone https://github.com/facebook/WebDriverAgent

 

Cloning into \'WebDriverAgent\'...
remote: Enumerating objects: 18281, done.
remote: Total 18281 (delta 0), reused 0 (delta 0), pack-reused 18281
Receiving objects: 100% (18281/18281), 15.61 MiB | 52.00 KiB/s, done.
Resolving deltas: 100% (6909/6909), done.

 

*运行初始化脚本

 

首先需要先进入到WebDriverAgent项目的根目录下

 

# 进入到WDA 根目录
cd WebDriverAgent/

# 运行初始化脚本
./Scripts/bootstrap.sh

提示:

前提是已经安装了Carthage和npm,官方的文档讲的很清晰,Carthage 是用来解决 xcode project 依赖的,大家可能知道 cocoapod,那你就把 Carthage 理解成和 cocoapod 一样的东西就可以了,可以通过 brew install carthage 安装。npm 是用来构建 Inspector, Inspector 是一个 react 的应用,通过往 WebDriverAgent 发 HTTP 请求,返回页面的结构。

一、安装mac 神器Homebrew工具
1、简介

Homebrew官网 http://brew.sh/index_zh-cn.html

Homebrew是神马

linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red ha有yum,Ubuntu有apt-get

 神马,你用mac os,不好意Mac os木有类似的东东,泪奔中几经折腾总算找到了第三方支持:Homebrew,Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum神器

2、Homebrew安装

Homebrew的安装非常简单,打开终端复制、粘贴以下命令,回车,搞定(请放心使用,原汁原味的官方安装方法搬运)

usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

ps:不知道为什么执行这个命令有时会返回400,估计可能被墙了,过几分钟重试下一般就ok了,有图有真相

 

 

 

安装完成后执行检查命令安装是否成功

brew -v
Homebrew 0.9.9 (git revision cc10; last commit 2016-06-14)
Homebrew/homebrew-core (git revision 405f; last commit 2016-06-15)

3、Homebrew使用

Homebrew使用没啥好说的了,常用的

搜索软件:brew search 软件名,如brew search wget

安装软件:brew install 软件名,如brew install wget

卸载软件:brew remove 软件名,如brew remove wget

二、安装npm

brew install npm

NPM的全称是Node Package Manager ,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准

三、安装libimobiledevice开源包(IOS开发的另类神器)
1、简介

libimobiledevice又称libiphone,是一个开源包,可以让Linux支持连接iPhone/iPod Touch等iOS设备。由于苹果官方并不支持Linux系统,但是Linux上的高手绝对不能忍受因为要连接iOS设备就换用操作系统这个事儿。因此就有人逆向出iOS设备与Windows/Mac Host接口的通讯协议,最终成就了横跨三大桌面平台的非官方版本USB接口library。经常用Linux系统的人一定对libimobiledevice不陌生,但是许多Windows和Mac用户也许就不知道了。事实上,它同iTools一样,都是可以替代iTunes,进行iOS设备管理的工具。因为源码是开放的,可以自行编译,所以对很多开发者而言可以说更为实用

参考:http://www.jianshu.com/p/6423610d3293

 

2、安装依赖库

指令:brew install libimobiledevice 

npm install -g ios-deploy  #如果是iOS10以上的系统才需要安装

如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装,如果要在iOS10+的系统上使用appium,则需要安装ios-deploy

四、安装carthage
1、简介

Carthage的目标是用最简单的方式来管理Cocoa第三方框架

参考https://www.cnblogs.com/wendingding/p/5959322.html

Carthage 是用来解决 xcode project 依赖的,大家可能知道 cocoapod,那你就把 Carthage 理解成和 cocoapod 一样的东西就可以了,可以通过 brew install carthage 安装。

 

2、安装

指令:brew install carthage

五.安装ideviceinstaller

  • brew install ideviceinstaller

*查看手机上app的bundleId

  • ideviceinstaller -l

安装问题:

1.xcode-select:error:tools \'xcodebuild\' requires Xcode
解决方案:sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

xcodebuild -version命令可以查看当前xcode版本号

2.error: Unable to create directory: /usr/local/lib/node_modules/ios-deploy/build/ios-deploy.build/Release/ios-deploy-lib.build (Permission denied)


EACCES: permission denied, access \'/usr/local/lib/node_modules\'
解决方案:

sudo chown -R $USER /usr/local/lib/node_modules/
给当前用户赋予读写权限
再执行npm install -g ios-deploy

 

参考:https://testerhome.com/topics/5233

https://testerhome.com/topics/15617
https://www.bilibili.com/video/av71620618

https://testerhome.com/topics/4904

https://blog.csdn.net/u012873868/article/details/81132413

以上是关于appium iOS真机获取剪贴板内容的主要内容,如果未能解决你的问题,请参考以下文章

如何获取文本文件的内容并将其复制到剪贴板?

Android util - 获取剪贴板内容

js 操作剪贴板

.Net C#获取剪贴板内容图片和文字

C#中如何动态获取剪贴板中的内容(我想实现如果其中有内容就清空,在C#中不要实现复制,粘贴功能)?

复制内容到剪贴板