【iOS免越狱】利用IOS自动化web-driver-agent_appium-实现自动点击+滑动屏幕

这篇具有很好参考价值的文章主要介绍了【iOS免越狱】利用IOS自动化web-driver-agent_appium-实现自动点击+滑动屏幕。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.目标
  • 在做饭、锻炼等无法腾出双手的场景中,想刷刷抖音

  • 刷抖音的时候有太多的广告

如何解决痛点

  • 抖音自动播放下一个视频
  •  iOS系统高版本无法 越狱 安装插件
2.操作环境
MAC一台,安装 Xcode
iPhone一台,16 系统以上最佳
 3.流程

下载最新 web-driver-agent_appium

xcode 打开

【iOS免越狱】利用IOS自动化web-driver-agent_appium-实现自动点击+滑动屏幕,教程专区,开发日记汇,appium

 配置开发者证书

【iOS免越狱】利用IOS自动化web-driver-agent_appium-实现自动点击+滑动屏幕,教程专区,开发日记汇,appium

运行 

【iOS免越狱】利用IOS自动化web-driver-agent_appium-实现自动点击+滑动屏幕,教程专区,开发日记汇,appium

( 直接command+U运行,这是test模式,不能run,即一定要执行project>Test 才可以校验第三步), 运行后会提示输入mac电脑的密码,提示编译成功,并且在IOS真机上看到了WDA的身影。

【iOS免越狱】利用IOS自动化web-driver-agent_appium-实现自动点击+滑动屏幕,教程专区,开发日记汇,appium

编译成功

同时,控制台会显示输出IP地址和端口,如下图所示(打开控制台方法:选择view->Debug Area->Activate console打开底部控制台。):关键是最后一句话(ServerURLHere->http://192.168.11.236:8100<-ServerURLHere

复制url到输入在浏览器中,就会发现网页上显示出你的手机界面,然后,你就可以为所欲为啦。

不过有些iPhone,据说是国产的原因,直接使用ip不能连接手机(即输入打印出来的url无法显示手机界面),需要进行端口转发(终端执行 “iproxy 8300 8100” 回车后在浏览器中输入http://localhost:8300/出现json字符串即表示成功,同时说明WDA安装成功了)。

查看当前设备

地址后面添加/status可以查看当前设备(你使用的哪个设备运行,就是哪个设备的状态)的状态。---http://localhost:8300/status,获取与wda通信session id

【iOS免越狱】利用IOS自动化web-driver-agent_appium-实现自动点击+滑动屏幕,教程专区,开发日记汇,appium

 手机桌面app

 iOS15 以上打开屏幕会出现黑色影子,15 一下会闪退,需要 xcode 附加调试才能运行

【iOS免越狱】利用IOS自动化web-driver-agent_appium-实现自动点击+滑动屏幕,教程专区,开发日记汇,appium

第一部完成

web-driver-agent 就算安装完了。

开始第二部分

实现自动点击,和滑动,界面文字获取,等操作...

实现原理

      本身 web-driver-agent 就是 一个服务器,我们在写app安装到手机,调用本机127.0.0.1服务器接口。

点击/滑动 接口

+ (NSArray *)routes
{
  return
  @[
    [[FBRoute POST:@"/wda/touch/perform"] respondWithTarget:self action:@selector(handlePerformAppiumTouchActions:)],
    [[FBRoute POST:@"/wda/touch/multi/perform"] respondWithTarget:self action:@selector(handlePerformAppiumTouchActions:)],
    [[FBRoute POST:@"/actions"] respondWithTarget:self action:@selector(handlePerformW3CTouchActions:)],
  ];
}
要调用本地服务器,需要先获取一个sessionId

访问 http://127.0.0.1:8100/status 可以得到若sessionId字段为空,

【iOS免越狱】利用IOS自动化web-driver-agent_appium-实现自动点击+滑动屏幕,教程专区,开发日记汇,appium

就访问  /session  创建

POST http://127.0.0.1:8100/session 

Body 

NSString *body = @"{\"capabilities\":{\"firstMatch\":[{\"arguments\":[],\"environment\":{},\"eventloopIdleDelaySec\":0,\"shouldWaitForQuiescence\":true,\"shouldUseTestManagerForVisibilityDetection\":false,\"maxTypingFrequency\":60,\"shouldUseSingletonTestManager\":true,\"shouldTerminateApp\":true}],\"alwaysMatch\":{}}}";

获取session完整代码
- (IBAction)noButtonhttp:(id)sender {
    //get请求
    //[self reqWithMethod:0];
    
    [xddHttp reqWithMethodxdd2:@"http://127.0.0.1:8100/status" Method:0 HTTPBody:@"" Block:^(NSURLResponse * _Nonnull response, NSDictionary * _Nonnull dic) {
        
        NSString *sessionId = dic[@"sessionId"];
        NSLog(@"请求成功-status-sessionId=%@",sessionId);
        iPhoneSessionId = sessionId;
        if ([sessionId isKindOfClass:[NSNull class]]) // 字符串为空
        
            NSString *body = @"{\"capabilities\":{\"firstMatch\":[{\"arguments\":[],\"environment\":{},\"eventloopIdleDelaySec\":0,\"shouldWaitForQuiescence\":true,\"shouldUseTestManagerForVisibilityDetection\":false,\"maxTypingFrequency\":60,\"shouldUseSingletonTestManager\":true,\"shouldTerminateApp\":true}],\"alwaysMatch\":{}}}";
            
            [xddHttp reqWithMethodxdd2:@"http://127.0.0.1:8100/session" Method:1 HTTPBody:body Block:^(NSURLResponse * _Nonnull response, NSDictionary * _Nonnull dic) {
                NSString *sessionId = dic[@"sessionId"];
                NSLog(@"请求成功-session-sessionId=%@",sessionId);
                iPhoneSessionId = sessionId;
        }];
            
        }
    }];
    
    
}
拿到session

及可以去点击,滑动,获取屏幕信息了。

我测试每 10 秒手机屏幕自动上滑一次

创建定时器
+(void)myTimers{
    userarr = [self testArr];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        // 在这里执行你的任务
        //[self goo:nil];
    });
    
    myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(goo:) userInfo:nil repeats:YES];
    
}
每秒加一到 10 ,就执行一次滑动屏幕
+(void)go{
    GlobalVariableName = @"g0";
    userindex = userindex + 1;
    NSLog(@"定时器查: %d",userindex );
    //if(userindex %3 == 0){
    if(userindex  == 10){
        userindex=0;
        NSLog(@"开始滑动: %@",@"-------------------");
        NSString*url = [NSString stringWithFormat:@"http://127.0.0.1:8100/session/%@/wda/touch/perform",iPhoneSessionId];
        //点击
        NSString*body = @"{"actions":[{"action":"tap","options":{"x":131,"y":248}}]}";
        
        //滑动
        body=@"{\"actions\":[{\"action\":\"press\",\"options\":{\"x\":111,\"y\":392}},{\"action\":\"wait\",\"options\":{\"ms\":500}},{\"action\":\"moveTo\",\"options\":{\"x\":112,\"y\":161}},{\"action\":\"release\",\"options\":{}}]}";
        [xddHttp reqWithMethodxdd2:url Method:1 HTTPBody:body Block:^(NSURLResponse * _Nonnull response, NSDictionary * _Nonnull data) {
            NSLog(@"滑动结果: %@",data);
        }];
    }
    
    
}
实现效果

web-driver-agent_appium-自动滑动

手机需要保持后台运行,定时器一直运行

保持后台运行参考代码

iOS 关于后台持续运行https://gitee.com/vww/BgTaskDemo文章来源地址https://www.toymoban.com/news/detail-718389.html

到了这里,关于【iOS免越狱】利用IOS自动化web-driver-agent_appium-实现自动点击+滑动屏幕的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IOS自动化测试环境搭建教程

    目录 一、前言 二、环境依赖 1、环境依赖项 2、环境需求与支持 三、环境配置 1、xcode安装 2、Git安装 3、Homebrew安装(用brew来安装依赖) 4、npm和nodejs安装 5、libimobiledevice安装 6、idevicesinstaller安装 7、ios-deploy安装 8、Carthage安装 9、Appium安装 【我安装的appium版本:1.21.0】 10、

    2024年02月15日
    浏览(30)
  • 从0开始的ios自动化测试

    最近由于工作内容调整,需要开始弄ios自动化了。网上信息有点杂乱,这边我就按我的实际情况,顺便记录下来,看是否能帮到有需要的人。 安装tidevice 它的作用是,帮你绕开ios必须用mac的xcode启动wda,直接在windows上使用tidevice启动wda就行了(windows电脑需要先安装iTunes)。

    2024年02月09日
    浏览(30)
  • iOS自动化测试工具-tidevice

    在iOS测试过程中,经常会需要查看设备udid、查看包名,安装和卸载应用,获取设备截图,获取性能数据等操作,Android有丰富的adb命令可以使用,iOS的tidevice工具就类似于Android的adb,可以提供这些功能; 一直以来也没有能够直接获取iOS性能数据的工具,tidevice可以方便的获取

    2024年01月22日
    浏览(32)
  • 【iOS自动化测试】第一章:方案调研

    目前Android端已完成了相应的框架搭建,并实际落地产出了,由于Android使用的是Unittest+HtmlTestRunner产出报告,需要增加新功能的话需要改动到底层框架,所以目前在负责的iOS端打算采用Pytest+Allure方式来进行,优点是更好的插件支持,报告也会更好看(装逼)点 PS:Android端自动

    2024年02月09日
    浏览(31)
  • 如何在iOS手机上进行自动化测试

    🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连接安卓设备一样,实时投影、控制手

    2024年02月20日
    浏览(35)
  • 怎样在iOS手机上进行自动化测试

    Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连接安卓设备一样,实时投影、控制手机。iOS测试不仅限于真机测试,iOS模拟器也可以进行。Mac端上部署完成后还可以提供给同一局域网内的windows上远程连接使用。同时支持airtest图

    2024年02月04日
    浏览(27)
  • Window搭建IOS App自动化测试环境

    平台搭建 :tidevice(Windows逆向通信iOS工具)+WebDriverAgent(iOS通信服务)+facebook-wda(iOS测试框架) macOS+Xcode:在手机上安装WebDriverAgent的时候需要用到,必须要Xcode工具构建,构建完就不依赖了。 工具介绍: 1、tidevice         在window系统可以跑IOS自动化脚本,得力于tidevice这

    2024年02月10日
    浏览(41)
  • 如何使用IOS自动化测试工具UIAutomation

    这篇文章主要介绍了UIAutomation使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值 第一部分: 熟悉Instruments的UIAutomation. 第二部分: 控件的获取及操作 第三部分: 自定义自动化脚本 xcode中自带的Instuments工具可以用来进行APP的自动化测试, 以及用于进行内

    2024年02月03日
    浏览(33)
  • IOS手机和车机互联自动化测试

    在酷热的夏天,提前打开空调;在寒冷的冬天,提前加热座椅和方向盘。这些贴心的功能都是通过手机远程控制汽车实现的。随着汽车新四化的进程推进,类似手机和车机连接的功能必然越来越多。 作为汽车行业的工程师,我们都知道每一个功能的背后,都离不开反反复复的

    2024年02月10日
    浏览(39)
  • iOS系统下轻松构建自动化数据收集流程

    在当今信息爆炸的时代,我们经常需要从各种渠道获取大量的数据。然而,手动收集这些数据不仅耗费时间和精力,还容易出错。幸运的是,在现代科技发展中有两个强大工具可以帮助我们解决这一问题——Python编程语言和iOS设备上预装的Shortcuts App。 首先让我们来了解一下

    2024年02月10日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包