草庐IT

ios - 真实设备上的 Appium 检查器 - iOS

coder 2024-01-19 原文

我正在为我的 iOS 自动化测试评估 Appium。作为其中的一部分,当我选择我的设备目标作为 iPhone 模拟器时,我能够成功执行 appium 元素检查器。但是当我针对真实设备时,我无法调用元素检查器。

我已经使用开发配置文件对我的应用程序进行了签名,并且能够从 Xcode 5 安装和运行我的应用程序。所以我的应用程序设置看起来没问题,因为我能够运行我的应用程序。

然后我在 Appium.app GUI 中配置了所有细节,如 bundle id、设备等...并启动了 appium 服务器和检查器。当检查器启动时,我的应用程序在设备中成功打开,但它没有做任何进一步的操作,几秒钟后,我收到一个弹出消息“请确保 appium 服务器正在运行并且 APP_PATH 当前已设置...... "

我调用了一些调试日志,但无法从日志中找出问题所在。附加日志

info: Welcome to Appium v1.2.0 (REV e53f49c706a25242e66d36685c268b599cc18da5)

debug: Non-default server args: {"app":"com.bharathapp.npuzzle","udid":"a3c3ccbed22942bd7866cbf3751363004acec0a8","address":"127.0.0.1","sessionOverride":true,"fullReset":true,"deviceName":"iPhone Retina (4-inch 64-bit)","orientation":"Portrait","showSimulatorLog":true,"defaultCommandTimeout":7200}

info: Appium REST http interface listener started on 127.0.0.1:4723
info: LogLevel: debug

info: --> GET /wd/hub/status {}

debug: Appium request initiated at /wd/hub/status

debug: Request received with params: {}
debug: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}

info: <-- GET /wd/hub/status 200 7.573 ms - 104 {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}

info: --> GET /wd/hub/status {}

debug: Appium request initiated at /wd/hub/status

info: <-- GET /wd/hub/status 200 2.758 ms - 104 {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}

debug: Request received with params: {}
debug: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}

debug: Appium request initiated at /wd/hub/status

info: --> GET /wd/hub/status {}

debug: Request received with params: {}
debug: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
debug: Appium request initiated at /wd/hub/sessions
debug: Request received with params: {}
debug: Responding to client with success: {"status":0,"value":[]}
debug: Appium request initiated at /wd/hub/session
debug: Request received with params: {"desiredCapabilities":{"platformName":"iOS","platformVersion":"7.1","newCommandTimeout":"999999","automationName":"Appium","deviceName":"iPhone Retina (4-inch 64-bit)"}}
debug: App is an iOS bundle, will attempt to run as pre-existing
debug: Creating new appium session c8bdf0b6-ee57-47ce-ac74-da6ef6d01a27
debug: Removing any remaining instruments sockets
debug: Cleaned up instruments socket /tmp/instruments_sock
debug: Cleaning up any tracedirs
debug: No tracedirs to clean up
debug: Setting Xcode folder
debug: Setting Xcode version
debug: Setting iOS SDK Version
debug: iOS SDK Version set to 7.1
debug: Detecting automation tracetemplate
debug: Not auto-detecting udid, running on sim
debug: Localizable.strings is not currently supported when using real devices.
debug: Not setting locale because we're using a real device
debug: Creating instruments
debug: Preparing uiauto bootstrap
debug: Dynamic bootstrap dir: /Users/BharathMBA/Library/Application Support/appium/bootstrap
debug: Dynamic env: {"nodePath":"/Applications/Appium.app/Contents/Resources/node/bin/node","commandProxyClientPath":"/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/bin/command-proxy-client.js"}
debug: Dynamic bootstrap code: // This file is automatically generated. Do not manually modify!

#import "/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/uiauto/bootstrap.js";

bootstrap({
  nodePath: "/Applications/Appium.app/Contents/Resources/node/bin/node",
  commandProxyClientPath: "/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/bin/command-proxy-client.js",
});
debug: Dynamic bootstrap path: /Users/BharathMBA/Library/Application Support/appium/bootstrap/bootstrap-fe8fa37a970f98cc.js
debug: Reusing dynamic bootstrap: /Users/BharathMBA/Library/Application Support/appium/bootstrap/bootstrap-fe8fa37a970f98cc.js
debug: Not setting iOS and app preferences since we're on a real device
debug: Starting iOS device log capture via idevicesyslog
debug: Not setting device type since we're connected to a device
debug: Real device specified but no ipa or app path, assuming bundle ID is on device
debug: Starting command proxy.
debug: Instruments socket server started at /tmp/instruments_sock
debug: Starting instruments
debug: Instruments is at: /Applications/Xcode.app/Contents/Developer/usr/bin/instruments
debug: Attempting to run app on real device with UDID a3c3ccbed22942bd7866cbf3751363004acec0a8
debug: Spawning instruments with command: /Applications/Xcode.app/Contents/Developer/usr/bin/instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate -w a3c3ccbed22942bd7866cbf3751363004acec0a8 com.bharathapp.npuzzle -e UIASCRIPT /Users/BharathMBA/Library/Application Support/appium/bootstrap/bootstrap-fe8fa37a970f98cc.js -e UIARESULTSPATH /tmp/appium-instruments
debug: And extra without-delay env: {}
debug: And launch timeouts (in ms): {"global":90000}
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:15 Bharath DTMobileIS[10421] <Warning>: Could not create service named com.apple.instruments.server.services.filebrowser
info: <-- GET /wd/hub/status 200 1.234 ms - 104 {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
info: --> GET /wd/hub/sessions {}
info: <-- GET /wd/hub/sessions 200 15.674 ms - 23 {"status":0,"value":[]}
info: --> POST /wd/hub/session {"desiredCapabilities":{"platformName":"iOS","platformVersion":"7.1","newCommandTimeout":"999999","automationName":"Appium","deviceName":"iPhone Retina (4-inch 64-bit)"}}
info: Launching instruments
info: --> GET /wd/hub/status {}
info: <-- GET /wd/hub/status 200 1.998 ms - 155 {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}},"sessionId":"c8bdf0b6-ee57-47ce-ac74-da6ef6d01a27"}
warn: Instruments socket client never checked in; timing out (global)
info: Launching instruments
info: <-- POST /wd/hub/session - - ms - - 


debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:15 Bharath DTMobileIS[10421] <Warning>: Could not create service named com.apple.instruments.server.services.launchdaemon
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:15 Bharath DTMobileIS[10421] <Warning>: Could not create service named com.apple.instruments.server.services.processcontrol.posixspawn
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:16 Bharath kernel[0] <Debug>: launchd[10422] Container: /private/var/mobile/Applications/A264164B-EEDE-43CF-80AF-6972D5C0E829 (sandbox)
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:16 Bharath backboardd[28] <Error>: HID: The 'Passive' connection 'npuzzle' access to protected services is denied.
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:16 Bharath networkd[82] <Warning>: Analytics Engine: double ON for app: com.bharathapp.npuzzle
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:17 Bharath DTMobileIS[10421] <Warning>: CLTilesManagerClient: initialize, sSharedTilesManagerClient
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:17 Bharath DTMobileIS[10421] <Warning>: CLTilesManagerClient: init
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:17 Bharath DTMobileIS[10421] <Warning>: CLTilesManagerClient: reconnecting, 0x15d914b0
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:17 Bharath AdSheet[10418] <Warning>: [AppDeveloper] Fill rate for development application 'com.bharathapp.npuzzle': 80.0%
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:17 Bharath DTMobileIS[10421] <Error>: CoreLocation: could not chmod /var/mobile/Library/Preferences/com.apple.CoreMotion.plist errno 2 (No such file or directory)
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:17 Bharath DTMobileIS[10421] <Error>: CoreLocation: could not chown /var/mobile/Library/Preferences/com.apple.CoreMotion.plist errno 2 (No such file or directory)
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:17 Bharath DTMobileIS[10421] <Warning>: -[UIAutomationService _startUpAgent]: posix_spawn(): Resource temporarily unavailable
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:35 Bharath lockdownd[52] <Notice>: 00281000 _select_socket: receive secure message timeout!
debug: [IOS_SYSLOG_ROW ] Aug 14 09:35:35 Bharath lockdownd[52] <Notice>: 00281000 _receive_message: walk away - non-SSL 1
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:06 Bharath AdSheet[10418] <Warning>: [AppDeveloper] Fill rate for development application 'com.bharathapp.npuzzle': 80.0%
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:06 Bharath AdSheet[10418] <Warning>: [AppDeveloper] Simulating an inventory-unavailable server response due to development application fill rate. To change the fill rate, see the Developer panel in Settings.
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:06 Bharath npuzzle[10422] <Warning>: The operation couldn’t be completed. Ad inventory unavailable
debug: Appium request initiated at /wd/hub/status
debug: Request received with params: {}
debug: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}},"sessionId":"c8bdf0b6-ee57-47ce-ac74-da6ef6d01a27"}
debug: Killall instruments
debug: [INSTSERVER] Instruments exited with code null
debug: Killall instruments
debug: Attempting to retry launching instruments, this is retry #1
debug: Killall iPhoneSimulator
debug: Attempting to run app on real device with UDID a3c3ccbed22942bd7866cbf3751363004acec0a8
debug: Spawning instruments with command: /Applications/Xcode.app/Contents/Developer/usr/bin/instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate -w a3c3ccbed22942bd7866cbf3751363004acec0a8 com.bharathapp.npuzzle -e UIASCRIPT /Users/BharathMBA/Library/Application Support/appium/bootstrap/bootstrap-fe8fa37a970f98cc.js -e UIARESULTSPATH /tmp/appium-instruments
debug: And extra without-delay env: {}
debug: An
d launch timeouts (in ms): {"global":90000}
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:50 Bharath DTMobileIS[10423] <Warning>: Could not create service named com.apple.instruments.server.services.filebrowser
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:50 Bharath DTMobileIS[10423] <Warning>: Could not create service named com.apple.instruments.server.services.launchdaemon
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:50 Bharath DTMobileIS[10423] <Warning>: Could not create service named com.apple.instruments.server.services.processcontrol.posixspawn
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:51 Bharath com.apple.launchd[1] (UIKitApplication:com.bharathapp.npuzzle[0x3713][10422]) <Notice>: (UIKitApplication:com.bharathapp.npuzzle[0x3713]) Exited: Killed: 9
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:51 Bharath backboardd[28] <Warning>: Application 'UIKitApplication:com.bharathapp.npuzzle[0x3713]' exited abnormally with signal 9: Killed: 9
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:51 Bharath AdSheet[10418] <Warning>: tcp_connection_set_source_application proc_pidinfo PROC_PIDUNIQIDENTIFIERINFO for pid 10422 failed
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:51 Bharath AdSheet[10418] <Error>: tcp_connection_host_start 8 DNSServiceCreateDelegateConnection failed: -65555
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:52 Bharath AdSheet[10418] <Warning>: tcp_connection_set_source_application proc_pidinfo PROC_PIDUNIQIDENTIFIERINFO for pid 10422 failed
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:52 Bharath AdSheet[10418] <Error>: tcp_connection_host_start 11 DNSServiceCreateDelegateConnection failed: -65555
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath kernel[0] <Debug>: launchd[10424] Container: /private/var/mobile/Applications/A264164B-EEDE-43CF-80AF-6972D5C0E829 (sandbox)
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath backboardd[28] <Error>: HID: The 'Passive' connection 'npuzzle' access to protected services is denied.
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath DTMobileIS[10423] <Warning>: CLTilesManagerClient: initialize, sSharedTilesManagerClient
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath DTMobileIS[10423] <Warning>: CLTilesManagerClient: init
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath DTMobileIS[10423] <Warning>: CLTilesManagerClient: reconnecting, 0x1656a780
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath AdSheet[10418] <Warning>: [AppDeveloper] Fill rate for development application 'com.bharathapp.npuzzle': 80.0%
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath AdSheet[10418] <Warning>: [AppDeveloper] Simulating an inventory-unavailable server response due to development application fill rate. To change the fill rate, see the Developer panel in Settings.
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath npuzzle[10424] <Warning>: The operation couldn’t be completed. Ad inventory unavailable
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath DTMobileIS[10423] <Error>: CoreLocation: could not chmod /var/mobile/Library/Preferences/com.apple.CoreMotion.plist errno 2 (No such file or directory)
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath DTMobileIS[10423] <Error>: CoreLocation: could not chown /var/mobile/Library/Preferences/com.apple.CoreMotion.plist errno 2 (No such file or directory)
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:53 Bharath DTMobileIS[10423] <Warning>: -[UIAutomationService _startUpAgent]: posix_spawn(): Resource temporarily unavailable
debug: [IOS_SYSLOG_ROW ] Aug 14 09:36:54 Bharath npuzzle[10424] <Warning>: The operation couldn’t be completed. Banner view is visible but does not have content
debug: [IOS_SYSLOG_ROW ] Aug 14 09:37:10 Bharath lockdownd[52] <Notice>: 00281000 _select_socket: receive secure message timeout!
debug: [IOS_SYSLOG_ROW ] Aug 14 09:37:10 Bharath lockdownd[52] <Notice>: 00281000 _receive_message: walk away - non-SSL 1

info: --> GET /wd/hub/status {}

debug: Appium request initiated at /wd/hub/status

info: <-- GET /wd/hub/status 200 2.278 ms - 155 {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}},"sessionId":"c8bdf0b6-ee57-47ce-ac74-da6ef6d01a27"}

debug: Request received with params: {}
debug: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}},"sessionId":"c8bdf0b6-ee57-47ce-ac74-da6ef6d01a27"}

最佳答案

您正在获取日志:

"Real device specified but no ipa or app path, assuming bundle ID is on device"

当我尝试在没有应用程序路径的情况下运行检查器时,出现错误:

...running with an application opened by using the "App Path" parameter in Appium.app ...or by connecting with selenium client and supplying this in the desired capabilities object.

试试这个:

  • Archive a build in Xcode, then copy the .app file that's generated into a relevant directory.
  • Copy the path of the .app file into the 'app path' configuration.
  • Run It

关于ios - 真实设备上的 Appium 检查器 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25303147/

有关ios - 真实设备上的 Appium 检查器 - iOS的更多相关文章

  1. ruby - 检查 "command"的输出应该包含 NilClass 的意外崩溃 - 2

    为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar

  2. ruby - 检查数组是否在增加 - 2

    这个问题在这里已经有了答案:Checktoseeifanarrayisalreadysorted?(8个答案)关闭9年前。我只是想知道是否有办法检查数组是否在增加?这是我的解决方案,但我正在寻找更漂亮的方法:n=-1@arr.flatten.each{|e|returnfalseife

  3. ruby - 检查方法参数的类型 - 2

    我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:defsomeFixNumMangler(input)raise"wrongtype:integerrequired"unlessinput.class==FixNumother_stuffend有更好的选择吗? 最佳答案 使用Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发ArgumentError。defmy_method(number)

  4. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  5. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  6. ruby - 检查字符串是否包含散列中的任何键并返回它包含的键的值 - 2

    我有一个包含多个键的散列和一个字符串,该字符串不包含散列中的任何键或包含一个键。h={"k1"=>"v1","k2"=>"v2","k3"=>"v3"}s="thisisanexamplestringthatmightoccurwithakeysomewhereinthestringk1(withspecialcharacterslike(^&*$#@!^&&*))"检查s是否包含h中的任何键的最佳方法是什么,如果包含,则返回它包含的键的值?例如,对于上面的h和s的例子,输出应该是v1。编辑:只有字符串是用户定义的。哈希将始终相同。 最佳答案

  7. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  8. ruby-on-rails - Ruby 检查日期时间是否为 iso8601 并保存 - 2

    我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby​​是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查

  9. ruby - 检查日期是否在过去 7 天内 - 2

    我的日期格式如下:"%d-%m-%Y"(例如,今天的日期为07-09-2015),我想看看是不是在过去的七天内。谁能推荐一种方法? 最佳答案 你可以这样做:require"date"Date.today-7 关于ruby-检查日期是否在过去7天内,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/32438063/

  10. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

随机推荐