Unable to automate Safari on iPhone

Same as mentioned in thread Appium Studio not working for Ipad OS 13.4

Anyone got any solution for this? or any alternative?

Basil,

I think currently there is not work around as there is no support for 13.4 in Appium Studio 20.2. Please wait for 20.3 to be uploaded in Appium Studio community version website.

Thank you for your response!

When is the Appium studio 20.3 coming out? IS it coming out any time soon?

As far as I know its not been uploaded as yet. We will update this thread once uploaded.

Appium Studio 20.3 can be download via https://experitest.com/mobile-test-automation/appium-studio (It will be mailed after registration)

1 Like

Hi,

I’ve tried on fryday to download the latest version, but I didn’t received the email with download link. Any idea about this ?

Please check your Email Junk folder or contact your Email Server Admin they would have rejected our email.

I had to download it with the email of one of my collegue, I guess there is a problem on your side with already used email maybe ?
Anyway, I’m downloading the last version right now and keep you inform if problem persist.

Bad news, I have a lot of error of the type : “Failed to complete internal method”, wether doing a simple sendKeys in a field or an ExecuteScript. But it does not happened on every fields.

Please paste the section of the log which give you this error.

The logs are in %appiumstudio%\appiumstudio in Appium Studio-YY-dd-mm-min-seconds.log

Just installed 20.4.6801 and the issue is fixed now. Thank you Experitest team!

Here is the log of the error that I have on a scroll method :

java.lang.RuntimeException: element was found but is not visible
at com.experitest.device.HybridWebElement.getElementPositionProps(HybridWebElement.java:656)
at com.experitest.device.HybridWebElement.initLocation(HybridWebElement.java:560)
at com.experitest.device.HybridWebElement.getLocation(HybridWebElement.java:457)
at com.experitest.device.WebSearchAdaptor.operate(WebSearchAdaptor.java:296)
at com.experitest.image.agent.Controller.getIdleObjPositionByXpath(Controller.java:3226)
at com.experitest.image.agent.Controller.access$3100(Controller.java:257)
at com.experitest.image.agent.Controller$WaitForElementLogic.handleWebIdentType(Controller.java:12056)
at com.experitest.image.agent.Controller$WaitForElementLogic.tryFindPosition(Controller.java:11993)
at com.experitest.image.agent.Controller$WaitForElementLogic.invoke(Controller.java:11930)
at com.experitest.image.agent.Controller.waitForElementIntWithSt(Controller.java:2875)
at com.experitest.image.agent.Controller.waitForElementInt(Controller.java:2864)
at com.experitest.image.agent.Controller.findElements(Controller.java:3028)
at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.experitest.image.agent.controller.ControllerMediator.handleCommandExecution(ControllerMediator.java:90)
at com.experitest.image.agent.controller.ControllerMediator.invoke(ControllerMediator.java:69)
at com.sun.proxy.$Proxy16.findElements(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.experitest.image.agent.appium.backend.commands.SeeTestControllerProxy.invokeMethod(SeeTestControllerProxy.java:55)
at com.experitest.image.agent.appium.backend.commands.AppiumCommandsSeeTestControllerProxy.invoke(AppiumCommandsSeeTestControllerProxy.java:50)
at com.sun.proxy.$Proxy16.findElements(Unknown Source)
at com.experitest.image.agent.appium.backend.commands.find.GeneralFindElementCommand.findElements(GeneralFindElementCommand.java:124)
at com.experitest.image.agent.appium.backend.commands.find.GeneralFindElementCommand.findElements(GeneralFindElementCommand.java:61)
at com.experitest.image.agent.appium.backend.commands.find.GeneralFindElementCommand.findElements(GeneralFindElementCommand.java:45)
at com.experitest.image.agent.appium.backend.commands.find.FindChildElementsCommand.doExecute(FindChildElementsCommand.java:9)
at com.experitest.image.agent.appium.backend.commands.AppiumCommand.execute(AppiumCommand.java:170)
at com.experitest.image.agent.appium.http.AppiumGenericCommandHandler.lambda$executeCommand$1(AppiumGenericCommandHandler.java:314)
at com.experitest.utils.background.BackgroundTasks$DelegatingRenamingCallable.call(BackgroundTasks.java:221)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

And here is what I have on a sendText method :

2020-04-30 16:46:39,301 [Restlet-21002987-sendKeys-sid:f9902124-611b-4e90-a6de-717211deb862] (backend.commands.AppiumCommand) ERROR Exception of type ‘com.experitest.image.agent.appium.backend.errors.STAppiumException’ : An unknown server-side error occurred. status=‘false’. Failed to complete internal method: ‘elementSendText args: [WEB, xpath=(//[@id=‘autocompleteInput’])[1], 0, Sao Paulo]’, details:
com.experitest.image.agent.appium.backend.errors.STAppiumException: An unknown server-side error occurred. status=‘false’. Failed to complete internal method: 'elementSendText args: [WEB, xpath=(//
[@id=‘autocompleteInput’])[1], 0, Sao Paulo]’, details:
at com.experitest.image.agent.appium.backend.errors.STAppiumException.newUnknownErrorException(STAppiumException.java:89)
at com.experitest.image.agent.appium.backend.commands.AppiumCommandsSeeTestControllerProxy.validateInvokeResult(AppiumCommandsSeeTestControllerProxy.java:102)
at com.experitest.image.agent.appium.backend.commands.AppiumCommandsSeeTestControllerProxy.invoke(AppiumCommandsSeeTestControllerProxy.java:51)
at com.sun.proxy.$Proxy16.elementSendText(Unknown Source)
at com.experitest.image.agent.appium.backend.commands.element.ElementSendKeysCommand.doExecute(ElementSendKeysCommand.java:39)
at com.experitest.image.agent.appium.backend.commands.AppiumCommand.execute(AppiumCommand.java:170)
at com.experitest.image.agent.appium.http.AppiumGenericCommandHandler.lambda$executeCommand$1(AppiumGenericCommandHandler.java:314)
at com.experitest.utils.background.BackgroundTasks$DelegatingRenamingCallable.call(BackgroundTasks.java:221)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Could be because Hybrid Application.

Suggest you to install the app in instrumented mode , use the xpath for the element too for this instrumented mode and run u r code too instrumented mode (while running the app make sure instrumentApp capability)

I’m using Safari. Is it possible to launch it instrumented ?
I’m using those capabilities :

            capabilities.setCapability("platformName", platform);
            capabilities.setCapability("platformVersion", platformVersion); //Replace this with your Android version
            capabilities.setCapability("deviceName", deviceName); //Replace this with your simulator/device
            capabilities.setBrowserName(MobileBrowserType.SAFARI);

Any tips for this new problem ?

Ok. It appeared as if you used an Hybrid app but this is a pure web application.

  • Do an inspect via Object spy on whole flow and check if the element is supposed to visible or not.
  • Also check while doing this if some other element is above this element.

Is iOS 13.4.1 is compatible with latest appium studio version - 20.4.6801 ?

Only 13.4 is supported till now.