Error: 'browserName' cannot be set together with 'bundleId' capability - Appium - iOS

Error: 'browserName' cannot be set together with 'bundleId' capability - Appium - iOS

我正在使用 appium 自动化 iOS 应用程序。我已经提供了以下功能以启动应用程序。

DesiredCapabilities caps = null;
caps = DesiredCapabilities.iphone();
caps.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 5s");
caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "IOS");
caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.2.6");
caps.setCapability("newCommandTimeout", 2500);
caps.setCapability(MobileCapabilityType.NO_RESET, true);
caps.setCapability("udid", ebf79af8d3777b13fdfd9fc190424fdbfa869af9);
caps.setCapability(IOSMobileCapabilityType.AUTO_ACCEPT_ALERTS, true);        
caps.setCapability(IOSMobileCapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, true);
caps.setCapability("autoAcceptAlerts", true);
caps.setCapability("bundleId", "XXX.XXX.XXX.XXXX");
caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");

iOSDriver = new AppiumDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), caps);

脚本 运行 在模拟器上可以用 app 功能替换 bundle id

在我的真实设备中,我已经安装了应用程序,但我不想提供应用程序路径。因此我使用 bundle id 来启动应用程序。但是,启动失败。我没有给 browserName 但仍然接受它。从哪里采摘?你能帮忙找出问题所在吗?

这是真机的appium日志运行

[BaseDriver] The capabilities ["platform","unexpectedAlertBehaviour","version"] are not standard capabilities and should have an extension prefix
[Appium] Creating new XCUITestDriver (v2.94.2) session
[Appium] Capabilities:
[Appium]   browserName: iPhone
[Appium]   platform: MAC
[Appium]   platformName: ios
[Appium]   unexpectedAlertBehaviour: true
[Appium]   unhandledPromptBehavior: true
[Appium]   version: 
[Appium]   autoAcceptAlerts: true
[Appium]   automationName: XCUITest
[Appium]   bundleId: XXX.XXX.XXX.XXXX
[Appium]   deviceName: iPhone 5s
[Appium]   newCommandTimeout: 2500
[Appium]   noReset: true
[Appium]   platformVersion: 11.2.6
[Appium]   udid: ebf79af8d3777b13fdfd9fc190424fdbfa869af9
[debug] [BaseDriver] W3C capabilities {"alwaysMatch":{"browserNam... and MJSONWP desired capabilities {"noReset":true,"bundleId":... were provided
[debug] [BaseDriver] Creating session with W3C capabilities: {"alwaysMatch":{"browserNam...
[BaseDriver] The following capabilities were provided, but are not recognized by appium: unhandledPromptBehavior, platform, unexpectedAlertBehaviour, version.
[XCUITest] Error: 'browserName' cannot be set together with 'bundleId' capability
[XCUITest]     at Object.wrappedLogger.errorAndThrow (/usr/local/lib/node_modules/appium/node_modules/appium-support/lib/logging.js:78:13)
[XCUITest]     at XCUITestDriver.validateDesiredCaps (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:947:13)
[XCUITest]     at XCUITestDriver.callee[=11=][=11=]$ (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/session.js:45:8)
[XCUITest]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[XCUITest]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[XCUITest]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[XCUITest]     at invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[XCUITest]     at enqueueResult (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
[XCUITest]     at new Promise (<anonymous>)
[XCUITest]     at new F (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.export.js:30:36)
[XCUITest]     at AsyncIterator.enqueue (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
[XCUITest]     at AsyncIterator.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[XCUITest]     at Object.runtime.async (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
[XCUITest]     at XCUITestDriver.callee[=11=][=11=] [as createSession] (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/build/lib/basedriver/commands/session.js:35:30)
[XCUITest]     at XCUITestDriver.createSession$ (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:111:21)
[XCUITest]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[XCUITest]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[XCUITest]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[XCUITest]     at invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[XCUITest]     at enqueueResult (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
[XCUITest]     at new Promise (<anonymous>)
[XCUITest]     at new F (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.export.js:30:36)
[XCUITest]     at AsyncIterator.enqueue (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
[XCUITest]     at AsyncIterator.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[XCUITest]     at Object.runtime.async (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
[XCUITest]     at XCUITestDriver.createSession (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/build/lib/driver.js:247:34)
[XCUITest]     at AppiumDriver.callee[=11=]$ (/usr/local/lib/node_modules/appium/lib/appium.js:291:43)
[XCUITest]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[XCUITest]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[XCUITest]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[XCUITest]     at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[XCUITest]     at <anonymous>
[XCUITest]     at process._tickCallback (internal/process/next_tick.js:188:7)
[XCUITest] Error: 'browserName' cannot be set together with 'bundleId' capability
[XCUITest]     at Object.wrappedLogger.errorAndThrow (/usr/local/lib/node_modules/appium/node_modules/appium-support/lib/logging.js:78:13)
[XCUITest]     at XCUITestDriver.validateDesiredCaps (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:947:13)
[XCUITest]     at XCUITestDriver.callee[=11=][=11=]$ (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/session.js:45:8)
[XCUITest]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[XCUITest]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[XCUITest]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[XCUITest]     at invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[XCUITest]     at enqueueResult (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
[XCUITest]     at new Promise (<anonymous>)
[XCUITest]     at new F (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.export.js:30:36)
[XCUITest]     at AsyncIterator.enqueue (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
[XCUITest]     at AsyncIterator.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[XCUITest]     at Object.runtime.async (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
[XCUITest]     at XCUITestDriver.callee[=11=][=11=] [as createSession] (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/build/lib/basedriver/commands/session.js:35:30)
[XCUITest]     at XCUITestDriver.createSession$ (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:111:21)
[XCUITest]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[XCUITest]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[XCUITest]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[XCUITest]     at invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[XCUITest]     at enqueueResult (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
[XCUITest]     at new Promise (<anonymous>)
[XCUITest]     at new F (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.export.js:30:36)
[XCUITest]     at AsyncIterator.enqueue (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
[XCUITest]     at AsyncIterator.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[XCUITest]     at Object.runtime.async (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
[XCUITest]     at XCUITestDriver.createSession (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/build/lib/driver.js:247:34)
[XCUITest]     at AppiumDriver.callee[=11=]$ (/usr/local/lib/node_modules/appium/lib/appium.js:291:43)
[XCUITest]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[XCUITest]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[XCUITest]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[XCUITest]     at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[XCUITest]     at <anonymous>
[XCUITest]     at process._tickCallback (internal/process/next_tick.js:188:7)
[debug] [XCUITest] Not clearing log files. Use `clearSystemFiles` capability to turn on.
[debug] [BaseDriver] Event 'newSessionStarted' logged at 1539752480946 (10:31:20 GMT+0530 (IST))
[debug] [W3C] Encountered internal error running command: Error: 'browserName' cannot be set together with 'bundleId' capability
[debug] [W3C]     at Object.wrappedLogger.errorAndThrow (/usr/local/lib/node_modules/appium/node_modules/appium-support/lib/logging.js:78:13)
[debug] [W3C]     at XCUITestDriver.validateDesiredCaps (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:947:13)
[debug] [W3C]     at XCUITestDriver.callee[=11=][=11=]$ (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/session.js:45:8)
[debug] [W3C]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[debug] [W3C]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[debug] [W3C]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[debug] [W3C]     at invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[debug] [W3C]     at enqueueResult (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
[debug] [W3C]     at new Promise (<anonymous>)
[debug] [W3C]     at new F (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.export.js:30:36)
[debug] [W3C]     at AsyncIterator.enqueue (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
[debug] [W3C]     at AsyncIterator.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[debug] [W3C]     at Object.runtime.async (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
[debug] [W3C]     at XCUITestDriver.callee[=11=][=11=] [as createSession] (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/build/lib/basedriver/commands/session.js:35:30)
[debug] [W3C]     at XCUITestDriver.createSession$ (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:111:21)
[debug] [W3C]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[debug] [W3C]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[debug] [W3C]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[debug] [W3C]     at invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[debug] [W3C]     at enqueueResult (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
[debug] [W3C]     at new Promise (<anonymous>)
[debug] [W3C]     at new F (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.export.js:30:36)
[debug] [W3C]     at AsyncIterator.enqueue (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
[debug] [W3C]     at AsyncIterator.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[debug] [W3C]     at Object.runtime.async (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
[debug] [W3C]     at XCUITestDriver.createSession (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/build/lib/driver.js:247:34)
[debug] [W3C]     at AppiumDriver.callee[=11=]$ (/usr/local/lib/node_modules/appium/lib/appium.js:291:43)
[debug] [W3C]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[debug] [W3C]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[debug] [W3C]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[debug] [W3C]     at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[debug] [W3C]     at <anonymous>
[debug] [W3C]     at process._tickCallback (internal/process/next_tick.js:188:7)
[HTTP] <-- POST /wd/hub/session 500 27 ms - 1277
[HTTP]

这里添加 browserName 功能的罪魁祸首是这一行,

caps = DesiredCapabilities.iphone();

相反,用一个空的 DesiredCapabilities 初始化,比如

DesiredCapabilities caps = new DesiredCapabilities ();

当我们自动化 Web 应用程序时,我们需要指定 browserName 否则仅 bundleId 而不是两者。