If I run tests on application UICatalog from appium tutorial everything is working properly and test is executed on Simulator. However I am unable to run Appium inspector tool to inspect elements (trying to inspect same application UICatalog).
When I try to run inspector tool I can see following error in the log:
Details: Appium’s IosDriver does not support xcode version 8.0. Apple has deprecated UIAutomation. Use the “XCUITest” automationName capability instead.
But I am not able to force inspector tool to use XCUITest instead of UIAutomation.
Is there any way how to handle this?
OS:
macOS Sierra 10.12 (16A323)
Xcode:
Version 8.0 (8A218a)
Iphone Simulator:
iPhone6 - iOS 9.3 (13E233)
Appium version:
1.6.0-beta1
Test setup:
I am using same setup like in appium tutorial for iOS
This is my setup method (little bit adjusted)
public void setUp() throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(“appium-version”, “1.1.0”);
capabilities.setCapability(“platformVersion”, “9.3”);
capabilities.setCapability(“platformName”, “ios”);
capabilities.setCapability(“deviceName”, “iPhone Simulator”);
capabilities.setCapability(“automationName”, “XCUITest”); //use XCUITest required by Xcode 8.0
// Set job name on Sauce Labs capabilities.setCapability("name", "Java iOS tutorial "); String userDir = System.getProperty("user.dir"); String localApp = "UICatalog6.1.app.zip"; String appPath = Paths.get(userDir, localApp).toAbsolutePath().toString(); capabilities.setCapability("app", appPath); driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
String sessionId = driver.getSessionId().toString();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); int timeoutInSeconds = 60; // must wait at least 60 seconds for running on Sauce. // waiting for 30 seconds works locally however it fails on Sauce. driverWait = new WebDriverWait(driver, timeoutInSeconds); }
Appium Log:
[Appium] Welcome to Appium v1.6.0-beta1
[Appium] Non-default server args:
[Appium] debugLogSpacing: true
[Appium] platformName: 'iOS'
[Appium] platformVersion: '9.3'
[Appium] automationName: 'XCUITest'
[Appium] deviceName: 'iPhone 6'
[Appium] app: 'com.example.apple-samplecode.UICatalog'
[Appium] noReset: true
[Appium] nativeInstrumentsLib: true
[Appium] Deprecated server args:
[Appium] --platform-name => --default-capabilities '{"platformName":"iOS"}'
[Appium] --platform-version => --default-capabilities '{"platformVersion":"9.3"}'
[Appium] --automation-name => --default-capabilities '{"automationName":"XCUITest"}'
[Appium] --device-name => --default-capabilities '{"deviceName":"iPhone 6"}'
[Appium] --app => --default-capabilities '{"app":"com.example.apple-samplecode.UICatalog"}'
[Appium] --no-reset => --default-capabilities '{"noReset":true}'
[Appium] --native-instruments-lib => --default-capabilities '{"nativeInstrumentsLib":true}'
[Appium] Default capabilities, which will be added to each request unless overridden by desired capabilities:
[Appium] platformName: 'iOS'
[Appium] platformVersion: '9.3'
[Appium] automationName: 'XCUITest'
[Appium] deviceName: 'iPhone 6'
[Appium] app: 'com.example.apple-samplecode.UICatalog'
[Appium] noReset: true
[Appium] nativeInstrumentsLib: true
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
[HTTP] --> GET /wd/hub/status {}
[MJSONWP] Calling AppiumDriver.getSessions() with args: []
[MJSONWP] Responding to client with driver.getSessions() result: []
[HTTP] <-- GET /wd/hub/sessions 200 2 ms - 40
[HTTP] --> POST /wd/hub/session {"desiredCapabilities":{"platformName":"iOS","platformVersion":"9.3","newCommandTimeout":"7200","automationName":"Appium","bundleId":"com.example.apple-samplecode.UICatalog","deviceName":"iPhone 6"}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{"platformName":"iOS","pla...
[Appium] Creating new IosDriver session
[Appium] Capabilities:
[Appium] platformName: 'iOS'
[Appium] platformVersion: '9.3'
[Appium] newCommandTimeout: '7200'
[Appium] automationName: 'Appium'
[Appium] bundleId: 'com.example.apple-samplecode.UICatalog'
[Appium] deviceName: 'iPhone 6'
[Appium] app: 'com.example.apple-samplecode.UICatalog'
[Appium] noReset: true
[Appium] nativeInstrumentsLib: true
[BaseDriver] Capability 'newCommandTimeout' changed from string ('7200') to integer (7200). This may cause unexpected behavior
[BaseDriver] Session created with session id: 3aefc986-6d24-4f3c-8718-7438136bdfac
[debug] [iOS] Xcode version set to 8.0
[iOS] SessionNotCreatedError: A new session could not be created. Details: Appium's IosDriver does not support xcode version 8.0. Apple has deprecated UIAutomation. Use the "XCUITest" automationName capability instead.
at IosDriver.createSession$ (lib/driver.js:120:28)
at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/node_modules/babel-runtime/regenerator/runtime.js:136:37)
{ SessionNotCreatedError: A new session could not be created. Details: Appium's IosDriver does not support xcode version 8.0. Apple has deprecated UIAutomation. Use the "XCUITest" automationName capability instead.
at IosDriver.createSession$ (lib/driver.js:120:28)
at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/node_modules/babel-runtime/regenerator/runtime.js:136:37) jsonwpCode: 33 }