
在终端输入
验证所有依赖是否安装成功,都是打钩状态就证明环境正常,如图
3执行
4直接用Xcode打开 WebDriverAgentxcodeproj 文件
5配置 WebDriverAgentLib 和 WebDriverAgentRunner 的证书
一切正常的话,手机/模拟器上会出现一个无图标的 WebDriverAgent 应用,启动之后,马上又返回到桌面。
此时控制台界面可以看到设备的 IP 地址:
通过上面给出的 IP地址 和端口,加上/status合成一个url地址。例如 [ >
脚本如下:
from appium import webdriver
from appiumwebdrivercommontouch_action import TouchAction
import time
import os
server = r' >
实现了屏幕的展示,下一步就是控制了。
目前都在用UITest的方式控制设备,比如facebook的WebdriverAgent,现在已经不维护了,转做idb去了。原版有点问题,我们用appium的版本。
github链接 WebDriverAgent
WebdriverAgent通过XCTest等库的私有方法,做一些骚 *** 作。
打开FBElementCommandsm,看到有 tap 、 doubletap 、 touchAndHold 等事件。 tap对应鼠标按下和松开。只有松开后才能算完整的tap事件,看来是没法实时点击了。
为了对应鼠标的事件,找到XCPointerEvent这个类,简单实现个点击事件
在routes方法中注册自定义的接口路径和方法
通过XCPointerEventPath等私有api,执行鼠标事件
对于复杂的拖拽,一样可以用上面的办法
首先注册下方法
web端将一次完整的鼠标按下-》拖动xN -》松开事件作为请求参数请求fasttaps接口,接口将每种鼠标事件转为对应的PointerEvent,最后一起执行。
这种方案仍然是要等鼠标抬起才会触发一系列 *** 作,一样存在延迟问题。目前通过其他私有api还没找到解决方案。
键盘事件有每个key的keydown和keyup,事件中还包含辅助按键的按下情况,wda原版直接通过文本输入的方式,达到这个效果。这样很多键都会无法实现,比如组合键cmd+r等,只能支持文本输入。
继续看XCPointerEvent类
看起来有希望组合个 XCPointerEvent事件,添加到EventPath中。
但是失败了。
暂时先只支持文本吧
用命令行启动
映射wda端口到本机
连接多设备的情况,需要给每个wda一个单独的端口,并且指定测试的目标设备
端口无法连接的情况,需要用iproxy映射手机上的wda端口到mac端口,同时指定设备号以支持多设备连接的情况
安装app、剪贴板、相册等功能。
略
最后将视频工具、iproxy、wda集成在一个程序中控制,监听端口连接情况,自动运行、停止、重启系列工具。
实现,没啥好说的,略。
以上就是关于使用Appium进行iOS的真机自动化测试全部的内容,包括:使用Appium进行iOS的真机自动化测试、webdriver能获取 新打开的页面么、Appium Appium+Python 在切换到 webview 下,click () 事件后界面无响应等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)