Appium1.6.4-beta iPhone真机控件获取 app-inspector

简介:

步骤1安装app-inspector

  a先安装macaca

    卸载原有的macaca: 

      1、npm uninstall macaca-cli -g

      2、npm cache clean

    安装npm install macaca-cli -g

    安装完成后检查环境是否正常终端输入macaca doctor

    只要全部显示为绿色为环境正常若不正常哪项显示为红色相应的解决可以网上找一下资料还是挺全的

  b安装brewruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  c安装ios-webkit-debug-proxybrew install ios-webkit-debug-proxy

  d安装macaca-iosnpm i macaca-ios -g

  e Macaca iOS 驱动调整为 USB 通信brew install usbmuxd

  f安装app-inspector

    卸载原有的app-inspector: 

      1、npm uninstall app-inspector -g

      2、npm cache clean

    安装npm i app-inspector -g

    安装成功后在终端中输入

      >>>cd /usr/local/lib/node_modules/app-inspector/node_modules/webdriveragent/WebDriverAgent

      >>>mkdir -p Resources/WebDriverAgent.bundle

      >>>sh ./Scripts/bootstrap.sh -d

      若在执行以上3句命令行报错说找不到某些目录时的解决办法


    1. 前往https://github.com/facebook/WebDriverAgent 打包下载源码

    2. 复制源码中【WebDriverAgentTests文件夹】、【Scripts文件夹】、【Cartfile文件】、【Cartfile.resolved文件】

    3. 粘贴到/usr/local/lib/node_modules/app-inspector/node_modules/webdriveragent/WebDriverAgent 目录下

    4. 重新执行以上3句命令行


  g安装ios-deploybrew install ios-deploy

 


 

步骤2xcode打开app-inspector中的WebDriverAgent工程

  路径为:/usr/local/lib/node_modules/app-inspector/node_modules/.1.0.41@webdriveragent/WebDriverAgent/WebDriverAgent.xcodeproj

  1) 重新编绎WebDriverAgentLib:

    修改Bundle id添加Team选择WebDriverAgentLib并编辑如下面3张图

58eb1ff633450d67e300a8b0159184b1.png-wh_

e47db1a48bebf04086dda94e1062e977.png-wh_

05cb9e8cd1e84f91f639525785747115.png-wh_


 3选择WebDriverAgentUSBClient并编绎

c1da4ce02a97207c292363a0f62823bd.png-wh_

  4按照步骤1中修改Bundle id添加Team重新编绎IntegrationApp但是需要添加一步修改Product Name为 WebDriverAgentRunner-Runner



 此时选中IntegrationApp并编绎时可能会报错找不到info.plist 这个是因为工程中缺少一个目录文件WebDriverAgentTests

  解决办法进入appium的安装路径中WebDriverAgent工程/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/中拷备该目录文件放到app-inspectorWebDriverAgent工程中

  再次编绎若报错新问题 Main storyboard file base name  相关的问题的问题

  解决办法进入IntegrationApp>info>Custom iOS Target Properties中删除Main storyboard file base name的配置


若遇到其它问题继续解决直到可以正确编绎为止

  建议UnitTests、IntegrationTests 也如1修改Bundle id添加Team操作后最后再编绎 IntegrationApp

步骤3打开终端输入 macaca server --verbose

  出现以下内容 

>> request.js:24:12 [master] pid:34557 get remote update info failed.
>> index.js:17:12 [master] pid:34558 webdriver server start with config:
 { port: 3456,
  verbose: true,
  always: true,
  ip: '10.1.18.165',
  host: 'XXX.local',
  loaded_time: '2017-02-16 14:18:28' }
>> middlewares.js:17:10 [master] pid:34558 base middlewares attached
>> router.js:127:10 [master] pid:34558 router set
>> webdriver sdk launched

 


 

步骤4打开终端输入app-inspector -u 真机设备UDID --verbose

  运行过程中会在手机上安装WebDriverAgent的APP(记得要去信任证书才行,若第一次失败了信任证书后重新执行终端命令并启动稍等一会儿会被置入后台此时会自动打开一个网页此时就会显示出当前的设备UI界面

XXXdeMacbook-Air:~ XXX$ app-inspector -u 设备udid --verbose
>> server.js:16:12 [master] pid:34571 server start with config:
 { port: 5678,
  verbose: true,
  udid: '设备udid',
  ip: '10.1.18.165',
  host: 'XXXdeMacbook-Air.local',
  loaded_time: '2017-02-16 14:18:50' }
>> app-inspector.js:42:10 [master] pid:34571 server start at: http://10.1.18.165:5678
>> xctest-client.js:56:14 [master] pid:34571 project path: /usr/local/lib/node_modules/app-inspector/node_modules/.1.0.41@webdriveragent/WebDriverAgent/WebDriverAgent.xcodeproj
>> xctest-client start with port: 8900
>> xctest-client.js:233:14 [master] pid:34571 xcode version: 8.2.1
>> WebDriverAgent version: 1.0.41
>> xctest-client.js:170:14 [master] pid:34571 2017-02-16 14:18:52.484 xcodebuild[34577:1239191]  IDETestOperationsObserverDebug: Writing diagnostic log for test session to:
/Users/XXX/Library/Developer/Xcode/DerivedData/WebDriverAgent-fufzddftjuaziqbqsgzxfgnhxfhf/Logs/Test/A0E63772-010C-42AA-B667-75A42C3DD7B7/Session-WebDriverAgentRunner-2017-02-16_141852-uYtrIc.log
2017-02-16 14:18:52.484 xcodebuild[34577:1239151] [MT] IDETestOperationsObserverDebug: (52E7D9BD-BCAA-43C6-A3FC-CA664A377214) Beginning test session WebDriverAgentRunner-52E7D9BD-BCAA-43C6-A3FC-CA664A377214 at 2017-02-16 14:18:52.483 with Xcode 8C1002 on target <DVTiOSDevice: 0x7f91cccd6550> {
        deviceSerialNumber:         XXXXXXXX
        identifier:                 设备udid
        deviceClass:                iPhone
        deviceName:                 0112iPhone
        deviceIdentifier:           设备udid
        productVersion:             9.3.3
        buildVersion:               13G34
        deviceSoftwareVersion:      9.3.3 (13G34)
        deviceArchitecture:         arm64
        deviceTotalCapacity:        122562965504
        deviceAvailableCapacity:    103091081216
        deviceIsTransient:          NO
        ignored:                    NO
        deviceIsBusy:               NO
        deviceIsActivated:          YES
        deviceActivationState:      Activated
        deviceType:                 <DVTDeviceType:0x7f91cccbf7b0 Xcode.DeviceType.iPhone>
        supportedDeviceFamilies:    (
    1
)
        applications:              (null)
        provisioningProfiles:      (null)
        activityProgress:          -2
        activityTitle:             
        hasInternalSupport:        NO
        isSupportedOS:             YES
        developerDiskMountError:   (null)
(null)
    } (9.3.3 (13G34))

>> xctest-client.js:171:14 [master] pid:34571 please check project: /usr/local/lib/node_modules/app-inspector/node_modules/.1.0.41@webdriveragent/WebDriverAgent/WebDriverAgent.xcodeproj
>> xctest-client.js:170:14 [master] pid:34571 MDMCreateDeltaDirectory:1920 calling MDMDirectoryDiff with:
state->old_bundle: /var/folders/f_/c2d1j2c11nbf84jj566wzx000000gn/C/com.apple.DeveloperTools/All/Xcode/EmbeddedAppDeltas/97bda29204e9bab8b0e965b05a9ff4be/2abc700de7224db44d77699768cc4c441c0fdc91/WebDriverAgentRunner-Runner.app
state->new_bundle: /Users/XXX/Library/Developer/Xcode/DerivedData/WebDriverAgent-fufzddftjuaziqbqsgzxfgnhxfhf/Build/Products/Debug-iphoneos/WebDriverAgentRunner-Runner.app
state->dst_bundle: /var/folders/f_/c2d1j2c11nbf84jj566wzx000000gn/C/com.apple.DeveloperTools/All/Xcode/EmbeddedAppDeltas/WebDriverAgentRunner-Runner.app.djQMjR/WebDriverAgentRunner-Runner.app_sparse.ipa/Payload//WebDriverAgentRunner-Runner.app, binaryDiff flag: FALSE
    dst_ipa: /var/folders/f_/c2d1j2c11nbf84jj566wzx000000gn/C/com.apple.DeveloperTools/All/Xcode/EmbeddedAppDeltas/WebDriverAgentRunner-Runner.app.djQMjR/WebDriverAgentRunner-Runner.app_sparse.ipa

>> xctest-client.js:171:14 [master] pid:34571 please check project: /usr/local/lib/node_modules/app-inspector/node_modules/.1.0.41@webdriveragent/WebDriverAgent/WebDriverAgent.xcodeproj
>> xctest-client.js:170:14 [master] pid:34571 __MDMDirectoryDiff_block_invoke.37:1473 calling writeDictToFile with: /var/folders/f_/c2d1j2c11nbf84jj566wzx000000gn/C/com.apple.DeveloperTools/All/Xcode/EmbeddedAppDeltas/WebDriverAgentRunner-Runner.app.djQMjR/WebDriverAgentRunner-Runner.app_sparse.ipa/ManifestCache.plist

>> xctest-client.js:171:14 [master] pid:34571 please check project: /usr/local/lib/node_modules/app-inspector/node_modules/.1.0.41@webdriveragent/WebDriverAgent/WebDriverAgent.xcodeproj
>> xctest-client.js:170:14 [master] pid:34571 writeDictToFile:1278 ==== Successfully wrote Manifest cache to /var/folders/f_/c2d1j2c11nbf84jj566wzx000000gn/C/com.apple.DeveloperTools/All/Xcode/EmbeddedAppDeltas/WebDriverAgentRunner-Runner.app.djQMjR/WebDriverAgentRunner-Runner.app_sparse.ipa/ManifestCache.plist

>> xctest-client.js:171:14 [master] pid:34571 please check project: /usr/local/lib/node_modules/app-inspector/node_modules/.1.0.41@webdriveragent/WebDriverAgent/WebDriverAgent.xcodeproj
>> proxy.js:56:14 [master] pid:34571 Proxy: /session:POST to http://127.0.0.1:8900/session:POST with body: {"desiredCapabilities":{}}
>> proxy.js:84:20 [master] pid:34571 Got response with status 200: {"value":"'bundleId' desired capability not provided","sessionId":null,"status":13}
>> iOS device started: 2abc700de7224db44d77699768cc4c441c0fdc91
>> inspector start at: http://10.1.18.165:5678  <-- GET />> ios.js:67:10 [master] pid:34571 Dump iOS XML success, save to /usr/local/lib/node_modules/app-inspector/.temp/ios.json
  --> GET / 200  <-- GET />> ios.js:67:10 [master] pid:34571 Dump iOS XML success, save to /usr/local/lib/node_modules/app-inspector/.temp/ios.json
  --> GET / 200  <-- GET />> ios.js:67:10 [master] pid:34571 Dump iOS XML success, save to /usr/local/lib/node_modules/app-inspector/.temp/ios.json
  --> GET / 200

错误解决

  1) xctest client proxy error with: Error: socket hang up问题

    a安装usbmuxdbrew install usbmuxd

    b命令行执行iproxy 8900 8100或者是8100 8100

    c启动app-inspecter










本文转自 知止内明 51CTO博客,原文链接:http://blog.51cto.com/357712148/1979985,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
测试技术 UED Python
App自动化测试:高级控件交互技巧
Appium 的 Actions 类支持在移动应用自动化测试中模拟用户手势,如滑动、长按等,增强交互性测试。ActionChains 是 Selenium 的概念,用于网页交互,而 Actions 专注于移动端。在Python中,通过ActionChains和W3C Actions可以定义手势路径,例如在手势解锁场景中,先点击设置,然后定义触点移动路径执行滑动解锁,最后验证解锁后的元素状态。此功能对于确保应用在复杂交互下的稳定性至关重要。
|
6月前
|
XML Java Android开发
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
117 1
|
6月前
|
XML Java 测试技术
『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略
『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略
768 3
|
6月前
|
JavaScript Java 测试技术
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
2883 0
|
6月前
|
XML 测试技术 开发工具
『App自动化测试之Appium应用篇』| 元素定位工具uiautomatorviewer从简介、特点、启动到使用的完整过程
『App自动化测试之Appium应用篇』| 元素定位工具uiautomatorviewer从简介、特点、启动到使用的完整过程
229 4
|
6月前
|
编解码 Java 测试技术
『App自动化测试之Appium应用篇』| uiautomator + accessibility_id定位方法完全使用攻略
『App自动化测试之Appium应用篇』| uiautomator + accessibility_id定位方法完全使用攻略
280 0
|
10天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
46 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
6月前
|
开发工具 iOS开发
如何导出iPhone手机中app共享文件夹的文件与闪退日志的收集
如何导出iPhone手机中app共享文件夹的文件与闪退日志的收集
86 1
|
6月前
|
移动开发 安全 测试技术
『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?
『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?
195 0
|
6月前
|
测试技术 Android开发 iOS开发
『App自动化测试之Appium基础篇』| Desired Capabilities详解与使用
『App自动化测试之Appium基础篇』| Desired Capabilities详解与使用
146 0