Hi there,
I have an issue with starting the test with real devices. Here is the situation:
- I start the ios driver and start my test
- OS version is mountain lion (10.8.3)
- Instruments version is: 4.6
- Xcode version is: 4.6
- I have made sure the instruments are all closed before I start the test
- xcodebuild -showsdks
OS X SDKs:
Mac OS X 10.7 -sdk macosx10.7
OS X 10.8 -sdk macosx10.8
iOS SDKs:
iOS 6.1 -sdk iphoneos6.1
iOS Simulator SDKs:
Simulator - iOS 5.0 -sdk iphonesimulator5.0
Simulator - iOS 5.1 -sdk iphonesimulator5.1
Simulator - iOS 6.0 -sdk iphonesimulator6.0
Simulator - iOS 6.1 -sdk iphonesimulator6.1
Problem:
The application under test starts when the remote driver is being initialized and then after a 1 minute or so, I see the following error:
org.openqa.selenium.SessionNotCreatedException: error starting instrument for session b25c2fb8-2bd5-4c1a-a4b3-7b095a4ae6b7, Instruments crashed.
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.8.3', java.version: '1.6.0_45'
Driver info: driver.version: unknown
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.8.3', java.version: '1.6.0_45'
Driver info: driver.version: unknown
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.8.3', java.version: '1.6.0_45'
Driver info: driver.version: unknown
Command duration or timeout: 99.67 seconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.8.2', java.version: '1.6.0_37'
Driver info: org.uiautomation.ios.client.uiamodels.impl.RemoteIOSDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:187)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:151)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:111)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:129)
at org.uiautomation.ios.client.uiamodels.impl.RemoteIOSDriver.(RemoteIOSDriver.java:78)
at com.ebay.e2e.mobiletest.MobileTest.App.getMobileLoggingDriver(App.java:55)
at com.ebay.e2e.mobiletest.MobileTest.App.main(App.java:28)
Here is the code for instantiating the driver:
IOSCapabilities cap = null;
cap = IOSCapabilities.iphone("appname","version");
cap.setCapability(IOSCapabilities.DEVICE, DeviceType.iphone);
cap.setCapability(IOSCapabilities.SIMULATOR, false);
cap.setCapability(IOSCapabilities.UUID,"c014d7a680b8a2608d2ca6247b261baadbdad6bd");
WebDriver driver = new RemoteIOSDriver(new URL("http://iosHubUrl:iosPort/wd/hub"), cap);
On the console where the driver is started, I see the following error:
19:56:391 WARNING DefaultCommandListener.stderr objc[45333]: Object 0x7ff6b2402bd0 of class NSUserDefaults autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() to debug
java.io.IOException: Bad file descriptor
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:220)
at java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at org.uiautomation.ios.utils.Command$2.run(Command.java:135)
at java.lang.Thread.run(Thread.java:680)
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:255)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at org.uiautomation.ios.utils.Command$2.run(Command.java:135)
at java.lang.Thread.run(Thread.java:680)
Your help will be much appreciated.