(三)用swift4写iOS微信跳一跳的自动跳(开挂)程序——用WebDriverAgent基于swift4进行手机截图
iPhone终端安装好WDA的标志是,在Xcode中点击Product-Test之后,Console窗口(View-Debug Area-Activate Console可以打开)会出现一串IP地址,比如下图中的IP地址就是:IP = http://169.254.13.135:8100大家可以在浏览器里面直接敲入地址查看情况,其中有一些常见的后缀:1. IP +
iPhone终端安装好WDA的标志是,在Xcode中点击Product-Test之后,Console窗口(View-Debug Area-Activate Console可以打开)会出现一串IP地址,比如下图中的IP地址就是:IP = http://169.254.13.135:8100
大家可以在浏览器里面直接敲入地址查看情况,其中有一些常见的后缀:
1. IP + /status/ :可以查看会话连接的状态(status为0时为正常连接),以及会话ID(sessionId)。
2. IP + /screenshot/:浏览器显示的是这一瞬间的截图数据,在value键对应的内容里。
3. IP + /inspector/:浏览器显示的是手机的实时图像,手机内各个元素对象的树,以及点击每一个元素时该元素的详细信息。
用swift来获取截图并显示出来:
基于2中的IP地址,用swift来获取这个地址中的字典元素,然后把value键的内容读取出来,再经过String类型转换得到最终图像,话不多说,上代码:
catchPic() 函数:获取截图
@objc func catchPic() {
let path =self.ip +"screenshot"
let url: URL = NSURL(string: path)as!URL
var string:String =""
do {
string = tryNSString(contentsOf: url, encoding:String.Encoding.utf8.rawValue)asString }
catch let error as NSError {
print("error in getting data:\(error.description)")
}
let dic: [String:AnyObject] =self.ConvertString2Dictionary(text: string)!
let image:UIImage? =self.ConvertString2Image(text: dic["value"]as!String)
}
其中有两个子函数:
(1)将String转Dictionary:
func ConvertString2Dictionary(text:String) -> [String:AnyObject]? {
if let data = text.data(using: String.Encoding.utf8) {
do {
returntryJSONSerialization.jsonObject(with: data, options:JSONSerialization.ReadingOptions.init(rawValue:0))as! [String:AnyObject] }
catchlet errorasNSError {
print("transvert error:\(error.description)")
}
}
return nil
}
(2)将String转UIImage
func ConvertString2Image(text:String) ->UIImage? {
if let data = NSData.init(base64Encoded: text, options:NSData.Base64DecodingOptions.ignoreUnknownCharacters) {
let image:UIImage? =UIImage.init(data: dataasData)
return image
}
return nil
}
更多推荐
所有评论(0)