使用Appium进行iOS的真机自动化测试

使用Appium进行iOS的真机自动化测试,第1张

在终端输入

验证所有依赖是否安装成功,都是打钩状态就证明环境正常,如图

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 () 事件后界面无响应等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9785349.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存