This site is in read only mode. Please continue to browse, but replying, likes, and other actions are disabled for now.
8 / 28
May 2016

Hi Suraj,

Launch the safari browser in mac PC in menu you should have Develop options.
Click on the Develop option in that list it should list the your device.

Select your device -> web page. (it show's only if web page is open in phone). you will able to locate the web elements.

If you don’t see the Develop menu in the menu bar, choose Safari >
Preferences, click Advanced, then select “Show Develop menu in menu bar.”

Look for how to switch the webview and you need to run the ios_webkit_debug_proxy.

Hope this will help you.

Regards
Naresh

Hi Naresh,

I did all these above steps but no help.

After setting the capabilities and launching the app I am not able to see index.html page in my safari if I use autoWebView, true in my capability

I am getting strange behaviour, If I am not using autowebview and then lauching the app then I am able to see index.html page. I suppose Appium is considering and taking my app as native app.

I even double checked this using

driver.Context="NATIVE_APP"; // index.html visible
driver.Context="WEBVIEW_1"; //index.html becomes disabled and not able to click on that

Even checked through localhost:27753 and the same behaviour.

When I force appium to switch context to webview and then click it just passes that step without doing any event(click/sendkeys)

and in native view it was showing error:

info: atom did not return yet, checking to see if we are blocked by an alert
info: Pushing command to appium work queue: "au.alertIsPresent()"

and it returns 8 commands found au.alertIsPresent()

Check capabilities settings.

browser Name Safari but you gave IOS and it should be platformversion not the plaftormName.
problem may be with capabilities.

Try to print the webview before switching after switching.

For hybrid app do I need to add browserName capabilities

I am using
capabilities.SetCapability ("appium-version", "1.4.13");
capabilities.SetCapability ("platformName", "iOS");

Am I using correct capabilities??

In addition to above two capabilities I am using below once also
capabilities.SetCapability("autoWebview", "true"); // should I define true as boolean or string(in quotes)
capabilities.SetCapability ("platformVersion", "9.3");
capabilities.SetCapability("deviceName", "iPad Air");
capabilities.SetCapability("app", "");
capabilities.SetCapability("udid", "");

Try with out setting this capability. and make sure that your are running the webkitproxy server
capabilities.SetCapability("autoWebview", "true");

can you copy paste all the capabilities? may be your making mistake in that.

capabilities.SetCapability ("appium-version", "1.4.13");
capabilities.SetCapability ("platformName", "iOS");
capabilities.SetCapability("autoWebview", "true"); // should I define true as boolean or string(in quotes)
capabilities.SetCapability ("platformVersion", "9.3");
capabilities.SetCapability("deviceName", "iPad Air");
capabilities.SetCapability("app", "");
capabilities.SetCapability("udid", "");

I was finding the solution and came across some articles where protractor + APpium is used for automation of ionic app.

Mine is also same. Can't we automate ionic app only using Appium.

Is it possible that Appium is not able to identify Ionic html tags??

Hope you are using the hybrid app ? try adding this cap.
capabilities.setCapability("appPackage", "xxxxxxxxxxxxxx");
capabilities.setCapability("automationName","Appium");

What is the advantage of having private obj ?
private IOSDriver driver = null;
private DesiredCapabilities capabilities = new DesiredCapabilities();

Yes I am using hybrid ionic iOS app. Defined them private since I don't want to use them outside the class.

Does appPackage is required for ios automation?

I read and found appPackage is required only for Android on link26. If you have any other reference, please do share.

2 years later

I am facing same issue . the element is present in Android but same element could not find in
iOs how to resolve this issue.

@dhanu1 kindly ellaborate… what is xpath/environment/capabilities … This would help to resolve ur issue

element is overlapp in frame so finding element is difficult .plz tell me how to find element.
MobileElement el8 = (MobileElement) driver.findElementByAccessibilityId(“et_lighton”);
el8.click();

2 months later

I face the same problem … I’m using ruby.
I have a popup that can not click at all. Application developed in IONIC (latest version).

My ENV.RB is like this … I’ve tried several ways

Before do
def caps
{
caps: {
deviceName: ‘0029179798’, # ‘emulator-5554’ Motorola Moto Z Play
platformName: ‘Android’,
#apk: (File.join(File.dirname(FILE), ‘app-intelbras.apk’)),
appPackage: ‘io.ionic.starter’, #com.ioasys.appprova / io.ionic.starter
appActivity: ‘io.ionic.starter.MainActivity’, #com.appprova.core.activity.OnBoardingActivity" / io.ionic.starter.MainActivity
newCommandTimeout: ‘3600’,
platformVersion: ‘8.0.0’, #'8.1.0’
appiumVersion: ‘1.8.1’,
deviceOrientation: ‘landscape’, #portrait
autoWebview: true,
# chromedriverExecutable: ‘C:/projetos/desenvolvimento/tools/drivers/chromedriver_2.41/chromedriver.exe’,
androidScreenshotPath: ‘results/screenshots’,
nativeWebScreenshot: true,
# chromedriverUseSystemExecutable: false,
autoGrantPermissions: true,
browserName: ‘’ #Deve usar uma string vazia se estiver automatizando um aplicativo
},
appium_lib: { server_url:SERVER_URL, port:PORT }
}
end
end

Hi all,

I am also facing the same issue. Unable to switch to Webview from Native app in IOS. Scroll in IOS also not working.
Doing IOS automation with xFramium tool+Appium+IOS.
{
“deviceName”: “iphone X”,
“udid”: “**",
“platformName”: “IOS”,
“platformVersion”: “11.4”,
“bundleId”: "
”,
“automationName”: “XCUITest”
“browserName”: “Safari”,
“startIWDP”: “true”,
“autoWebview”: “true”,
“absoluteWebLocations”: “true”
}

xFramium-Appium capabilities

iphone X IOS false
<!--  DEVRY MOBILE APP -->

<capability name=“appPackage” class="STRING”>
<capability name=“bundleId” class="STRING”>
*
true
false

Could anyone help out from this issue.
Thanks

1 month later

Hi All, did anyone get the solution for the above issue? I have everything latest in place. Appium, ios_webkit_debug_proxy, appium drivers, etc. After I start ios_webkit_debug_proxy, am able to see the device in the session list and if I try to open the app, I am not able to see the webview part in the session to inspect. Instead I am seeing the elements as XCUITestInputField, XCUITestInputSecureField (for password), etc. Is this the expected behaviour or will I be able to see the html part of the code? Please help me to solve this issue, if I am really missing anything important.

here’s my capabilities

IOSDriver driver;
DesiredCapabilities caps = new DesiredCapabilities();
caps.SetCapabilitiy(“app”, appPath);
caps.SetCapabilitiy(“bundleid”, “com..*”);
caps.SetCapability(“autoWebView”, “true”);
caps.SetCapability(“browserName”, “iOS”);
caps.SetCapability (“platformVersion”, Constants.PlatformVersion);
caps.SetCapability(“deviceName”, deviceName);
caps.SetCapability(“startIWDP”,true);

driver = new IOSDriver(new URL(“http://127.0.0.1:4723/wd/hub”),caps, TimeUnit.FromSeconds(10000));

In the appium log I am able to see only NATIVE_APP Context but not the WEBVIEW. Please help.

Hi SandySandy7,

Since your app is in native view after clicking the native element i suppose app is moving to Webview. If yes/you belive so,
then try to check the contexts in ruby. If both the contexts are there then swich to WEBVIEW and try to perform the required action