我可以用Appium - WebDriver在Mac笔记本电脑上运行一个应用程序到真实的iPhone设备上吗?

4

我已经成功地使用Appium在iPhone/iPad模拟器上运行了我的测试用例。

使用模拟器:

capabilities.setCapability("device", "iPhone Simulator");
capabilities.setCapability("app", "Safari");

我现在正在尝试在真实的iPhone设备上通过浏览器执行一些测试,因此我已经设置了UDID号码。

使用真实设备:

capabilities.setCapability("device", "75cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
capabilities.setCapability("app", "Safari");

但是,Appium需要绝对路径来定位应用程序。我也尝试使用Appium GUI,结果相同。我不知道是否可以使用Appium在真实设备上运行iPhone应用程序。如果可能的话,有人可以告诉我需要哪个绝对路径吗?抱歉我的英语不太好。感谢您的时间。
3个回答

5
绝对路径是指在您的Mac上一个应用程序的文件路径,Appium会在开始运行测试之前获取并安装该应用程序。目前,人们使用绝对路径到像SafariLauncher这样的程序来打开Mobile Safari。之后,您可以检索Safari中webview的窗口句柄并开始运行常规WebDriver命令。
这种解决方法已经在这里广泛讨论。我可以确认它有效,但从我的测试经验来看,所有这些组件一起工作的时间有点不稳定。
供参考,我相信这些是我用来启动自己的能力。
capabilities.setPlatform(Platform.valueOf("MAC"));
capabilities.setBrowserName("iPhone");
capabilities.setCapability("app", "/path/to/SafariLauncher.app");

感谢Christopher的回答。 我会尝试使用SafariLauncher。 再次感谢。 - Héctor Flores
在撰写本文时(Appium 0.12.13),似乎将“safari”传递给“app”功能应该可以正常工作。但是,对我来说并没有起作用:“ENOENT,stat'./build/SafariLauncher/SafariLauncherSim.zip'”。看起来Appium正在尝试为我应用解决方法,但失败了。不过,仍然可以通过传递该zip的绝对路径来实现。 - Matt Wilding

2

是的,可以在真实设备上运行Appium,如iPhone iPad。

注意:

  1. 需要使用最新版本的Appium和ios_webkit_debug_proxy,并保持运行状态。
  2. 测试设备应添加到预配文件中,并在XCODE构建应用程序时使用该文件。

尝试以下操作:

对于ios_webkit_debug_proxy命令应为

"ios_webkit_debug_proxy -c <<deviceID>>:27753 -d"

Appium连接到端口27753的ios_webkit以供设备使用。

在APPIUM GUI中:

  1. 选择应用程序位置(.app或.ipa文件)
  2. 提供您连接的设备的UDID
  3. 提及应用程序的捆绑标识符(如XCODE中所述)
  4. 在APPIUM首选项中设置XCODE位置设置。

在代码中:

  1. 只需要能力(BROWSER_NAME,PLATFORM,DEVICE = IPad / IPhone等)
  2. 不需要从代码中提及应用程序位置。

启动ios_webkit_debug_proxy >> 启动APPIUM >> 启动测试用例。


0
首先,当您使用真实设备时,请创建配置文件并运行应用程序并获取其 .app 文件。打开 appium 应用程序浏览 .app 文件并勾选强制设备 iPhone。指定创建配置文件时给出的 bundle 标识符。指定设备 UDID。点击启动,您可以发现 appium 正在运行您的应用程序,只需单击 appium 检查器,即可看到应用程序在真实设备上启动。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接