I have below snippet of code in my framework to lock the device
public void lockScreen() {
try {
if (Driver instanceof AndroidDriver) {
((AndroidDriver) Driver).lockDevice();
} else {
int time = this.getInt(Data, 5);
((IOSDriver) Driver).lockDevice(Duration.ofSeconds(time));
}
System.out.println("Screen locked");
} catch (Exception ex) {
Logger.getLogger(Basic.class.getName()).log(Level.SEVERE, null, ex);
}
}
I am using Java client 7.0.0, through Appium server trying to lock the IOS device (iPad). Getting an error from selenium. The method is not implemented , but the same is working fine for an Android device. Please suggest workaround or solution to resolve the issue.
Below are the exception stack trace
org.openqa.selenium.WebDriverException: Method has not yet been implemented (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'AMP00006', ip: '192.168.43.71', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '9.0.4'
Driver info: io.appium.java_client.ios.IOSDriver
Capabilities {automationName: XCUITest, browserName: , bundleId: com.apple.mobilecal, databaseEnabled: false, derivedDataPath: /Users/spritz/PreBuiltWDA, deviceName: Spritz's iPad, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: false, noReset: true, platform: ANY, platformName: iOS, takesScreenshot: true, udid: e9f0b277fbecf1bca7cda4b8e3d..., usePrebuiltWDA: true, webStorageEnabled: false}
Session ID: 0769d1ee-f9d9-471f-a6d5-cb3642c86867
at jdk.internal.reflect.GeneratedConstructorAccessor32.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
Thanks
