可以在 windows 平台上使用 appium 测试 IOS 手机吗

 我来答
出Q黑Q8403452
2017-11-10 · TA获得超过513个赞
知道答主
回答量:206
采纳率:41%
帮助的人:37.8万
展开全部
首先 Appium 支持 iOS 真机

  以下条件必须满足:

  苹果开发者账号和开发者证书
  苹果设备,确保这个设备已经被配置为开发机器。怎么配置?
  签名过的 .ipa 文件或者源代码
  A Mac with Xcode and the Xcode Command Line Developer Tools,有 xcode和xcode command line 的 苹果系统。别来问我,windows 怎么测试 iOS 应用。
  Provisioning Profile

  再次强调真机需要有效的开发分发证书和开发的 Provisioning Profile。
  你的应用需要签名。Appium 会参试使用 Fruitstrap 安装应用。
  但是使用 xcode 安装到真机会方便很多。

  拓展: 什么是 Provisioning Profile?

  运行

  要指定真机运行有两种方式:

  appium 启动的时候,指定 udid 和 app bundle appium -U --app
  或者在脚本里指定两个 desired capability

  desired_capabilities={
  'app':'com.xxx.iphone',
  'udid':'70643e56c1b0f3c3132c44c87e433a48b5531ee6',
  'platformName': 'iOS',
  'deviceName': 'iPhone'
  })
  注意: 如果设备中未安装 app 可以指定 ipa 地址,如果安装了,
  则指定 bundle ID。

  所以对于第一种情况,代码可以这样写:

  self.driver = webdriver.Remote(
  command_executor='',
  desired_capabilities={
  'deviceName':'',
  'platformName': 'iOS',
  })
  对于第二种情况,代码可以这样写:

  app = "io.appium.TestApp"
  self.driver = webdriver.Remote(
  command_executor='',
  desired_capabilities={
  'deviceName':'',
  'platformName': 'iOS',
  'app': app,
  'udid': 'cc6bcd6a94aeb8490924dd05c5b318bfbfafb3bb'
  })
  调试的思路

  确保 UDID 的正确,是真机的 UDID。(20+ 字符串)
  确保在模拟器上已经能运行无误了。
  直接使用 Instruments 看看是否能在真机上运行。有些情况连 xcode 的 instruments 都不能在真机上调试,那更别谈 appium 了
  确保运行 appium 用例前, instruments 没有启动过。看看有没有 instruments 的进程。
  目前 1.2.2 的坑

  目前 appium 1.2.2 上运行 iOS 真机测试的话,可能会遇到如下的错误:

  info: [debug] Starting iOS device log capture via deviceconsole
  error: iOS log capture failed: spawn ENOENT
  info: [debug] Cleaning up appium session
  error: Failed to start an Appium session, err was: Error: spawn ENOENT
  info: [debug] Error: spawn ENOENT
  at errnoException (child_process.js:1000:11)
  at Process.ChildProcess._handle.onexit (child_process.js:791:34)
  info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: spawn ENOENT)","code":"ENOENT","errno":"ENOENT","syscall":"spawn","origValue":"spawn ENOENT"},"sessionId":null}
  info: <-- POST /wd/hub/session 500 1780.745 ms - 197
  这是因为在 /usr/local/lib/node_modules/appium/build/deviceconsole/ 下面缺失了 deviceconsole。已经有 bug 追踪了。

  解决方法如下:

  到该目录底下 cd /usr/local/lib/node_modules/appium/build/deviceconsole/
  打开这个deviceconsole project。 open deviceconsole.xcodeproj
  重新 build 一把。把 build 出来的 deviceconsole,复制到 /usr/local/lib/node_modules/appium/build/deviceconsole/去。
  然后重新运行 Appium
力控科技
2024-08-19 广告
ForceSCADA是力控科技信创产品的重要组成部分,具备完全自主知识产权,支持部署在Linux桌面版、服务器版、嵌入式等系统架构下。使用ForceSCADA可以搭建创新性高、扩展性佳、融合度强的SCADA平台,进而构建高效、智能化的监控中... 点击进入详情页
本回答由力控科技提供
幸福之恋01
2018-08-03
知道答主
回答量:8
采纳率:0%
帮助的人:7761
展开全部
不可以!但是有个软件叫ranorex,可以在windows下测试IOS自动化测试IOS手机
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式