1

我是新手iOS automation并为此使用Appium命令行。我已经准备好在真实设备中启动应用程序(集成应用程序)的脚本,每当我在其中运行脚本Eclipse时,运行脚本时都会出现以下错误:

Exception in thread "main" org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command.

原始错误:无法安装应用程序:'命令'ios-deploy --id f31936d8edc3b8f880254efd02006273e81f5b --bundle /Users/eeposit/Library/Developer/Xcode/DerivedData/WebDriverAgent-dikkwtrisltbeobjmfvpthwwekvs/Build/Products/Debug-iphonesimulator/IntegrationApp.app'以代码 253 退出(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:9.97 秒构建信息:版本:'3.8.1',修订:'6e95a6684b',时间:'2017-12-01T19: 05:14.666Z' 系统信息:主机:'eeposits-Mac-mini-2.local',ip:'192.168.0.106',os.name:'Mac OS X',os.arch:'x86_64',os.版本:'10.13.2',java.version:'9.0.1' 驱动程序信息:driver.version:IOSDriver at java.base/jdk.internal.reflect。NativeConstructorAccessorImpl.newInstance0(Native Method) 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214) 在 org.openqa.selenium.remote.ErrorHandler。 throwIfResponseFailed(ErrorHandler.java:166) at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$new$0(JsonWireProtocolResponse.java:53) at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2(JsonWireProtocolResponse.java: 91) 在 org.openqa.selenium.remote。ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance (Spliterators.java:958) 在 java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127) 在 java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) 在java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) 上的 java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)。 stream.FindOps$FindOp.evaluateSequential(FindOps.java:152) 在 java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 在 java.base/java。org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126) 上的 util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:476) org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java: 73) 在 org.openqa.selenium.remote.RemoteWebDriver 的 io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:89) 的 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142) .execute(RemoteWebDriver.java:601) 在 io.appium.java_client.execute(DefaultGenericMobileDriver.java:42) 在 io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1) 在 io.appium.java_client。 org.openqa.selenium.remote.RemoteWebDriver 上的 ios.IOSDriver.execute(IOSDriver.java:1)。startSession(RemoteWebDriver.java:219) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:142) 在 io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:38) 在 io.appium.java_client.AppiumDriver .(AppiumDriver.java:83) 在 io.appium.java_client.AppiumDriver.(AppiumDriver.java:93) 在 io.appium.java_client.ios.IOSDriver.(IOSDriver.java:78) 在 FirstiOS.iosautomate.main(iosautomate .java:43)java_client.ios.IOSDriver.(IOSDriver.java:78) 在 FirstiOS.iosautomate.main(iosautomate.java:43)java_client.ios.IOSDriver.(IOSDriver.java:78) 在 FirstiOS.iosautomate.main(iosautomate.java:43)

我也成功安装了命令[ npm install -g ios-deploy ],但仍然显示错误。

因此,以下是我添加的功能。

capabilities.setCapability(MobileCapabilityType.APPIUM_VERSION, "1.7.2");
        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");
        capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9.3.3");
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 5s");
        capabilities.setCapability(MobileCapabilityType.UDID, "f31936d8edc3b8f880254efd02006273e81f5b");
        capabilities.setCapability(MobileCapabilityType.APP, "/Users/eeposit/Library/Developer/Xcode/DerivedData/WebDriverAgent-dikkwtrisltbeobjmfvpthwwekvs/Build/Products/Debug-iphonesimulator/IntegrationApp.app");
        capabilities.setCapability("bundleId", "com.facebook.IntegrationApp");
        capabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT, 500000);
        capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.IOS_XCUI_TEST);

请浏览我在此处附加的 appium 日志的图像:Appium 日志

[XCUITest] 错误:无法安装应用命令 'ios-deploy --id...exited with code 253

有什么建议或帮助吗?

4

1 回答 1

0

看起来您正在尝试将模拟器版本安装到真实设备上。您需要针对要测试的设备的适当架构进行构建,然后更新您的 MobileCapabilityType.APP 值以匹配。就像是:

"/Users/.../Xcode/DerivedData/WebDriverAgent-dikkwtrisltbeobjmfvpthwwekvs/Build/Products/Debug-iphoneos /IntegrationApp.app ");

这个错误信息在 Appium 的问题跟踪器中有详细的讨论

于 2018-01-12T08:44:56.947 回答