We got the app with Navigation Drawer
from support.v4
library. We automating UI testing with Robotium
and everything is ok, but Navigation Drawer
can freeze randomly so some tests can fail randomly.
This is definitely not a Robotium
problem, because I saw how Navigation Drawer
gets freezed in some other apps on my device, also in my own apps.
I already tried fix for Navigation Drawer
from this question's anwer: Why does DrawerLayout sometimes glitch upon opening?
It helped and random freezes decreased from 90% to about 10%, but 10% of test runs can fail and this is very bad, especially for Continuous Integration...
May be someone already fixed this problem?
I encountered the same problem with our Robotium tests and the solution I ended up going with was to simulate a drag gesture (how a real user would swipe open the drawer) instead of trying to click the drawer toggle or using the solo
methods. I seemed to notice the intermittent failues more often on devices running Android older than SDK 18.
I placed this method in our own subclass of Solo
and we haven't had a failing test since (over hundreds of runs).
/**
* Open the navigation drawer with a drag gesture. Click based triggering is
* flaky on SDK < 18
*/
public void openNavigationDrawer() {
Point deviceSize = new Point();
getCurrentActivity().getWindowManager().getDefaultDisplay().getSize(deviceSize);
int screenWidth = deviceSize.x;
int screenHeight = deviceSize.y;
int fromX = 0;
int toX = screenWidth / 2;
int fromY = screenHeight / 2;
int toY = fromY;
this.drag(fromX, toX, fromY, toY, 1);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With