Question

I want to test sharing functionality of an app but I have no idea how to handle android dialog "Complete action using" (Facebook, Gmail etc.)
When I use query("*") it is returning an empty set of fields.
Is there any way to handle such system dialogs using Calabash or any other way to test such functionality as sharing?

I am running my tests on physical device.

Edit: If there is no way to check whether the dialog has been opened or not, then maybe it is possible using adb shell or something like that?

Was it helpful?

Solution

It's not a very elegant solution but you can simulate screen touches using adb. There is an answer that covers it here - simulating touch using ADB

Edit: Adding some details on using adb to dump a file of all of the UI elements.

In the android sdk in the platforms/android-L folder there is a tool called uiautomater.jar that adb can use to run tests (though I've never used it for that) and to dump an xml file of the visible elements.

adb shell uiautomator dump test.xml

will create the xml file (on the device not your computer) that you could then look through in your code to check for the pop up you want. If you want to interact with the pop up then you can use the coordinates given in the xml dump to pick which one you want and use an adb touch event to click it.

Not a pretty solution but hopefully not too difficult to work into your tests :)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top