android - Robotium isn't scrolling to a text view -
i have following layout in fragment , activity:

as can see, robotium fills in text edittext views. scrolls , fills in "team" field follows "player name". however, there spinner after that, appropriate label in textview, , solo.searchfortext() doesn't scroll down put view. because of split action bar? can remedy problem in tests?
the relevant code attempts access spinner:
spinner playerpositionspinner = (spinner) solo.getview(r.id.player_position_text); @suppresswarnings("unchecked") arrayadapter<charsequence> playerpositionadapter = (arrayadapter<charsequence>) playerpositionspinner .getadapter(); int newindex = playerpositionadapter.getposition(card .getplayerposition()); int currindex = playerpositionspinner.getselecteditemposition(); boolean ispositionvisible = solo.searchtext( solo.getstring(r.string.player_position_label), true); solo.waitforview(r.id.player_position_text); boolean isconditionvisible = solo.searchtext(solo.getstring(r.string.condition_label), false); int index = -1; if (!isconditionvisible && ispositionvisible) { index = 0; } if (ispositionvisible && isconditionvisible) { index = 1; } assert.assertfalse("invalid index", index == -1); solo.pressspinneritem(index, newindex - currindex); the xml layout form fragment:
<?xml version="1.0" encoding="utf-8"?> <scrollview xmlns:android="http://schemas.android.com/apk/res/android" android:id="@id/scroll_card_details" android:layout_width="fill_parent" android:layout_height="fill_parent" > <tablelayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchcolumns="1" > <tablerow> <checkbox android:id="@id/autograph" android:text="@string/autograph_label" android:layout_span="2" /> </tablerow> <tablerow> <textview android:text="@string/condition_label" android:textstyle="bold" /> <spinner android:id="@id/condition" android:hint="@string/condition_hint" android:singleline="true" /> </tablerow> <tablerow> <textview android:text="@string/brand_label" android:textstyle="bold" /> <autocompletetextview android:id="@id/brand_text" android:completionthreshold="1" android:hint="@string/brand_hint" android:inputtype="textcapwords" android:selectallonfocus="true" android:singleline="true" > <requestfocus /> </autocompletetextview> </tablerow> <tablerow> <textview android:text="@string/year_label" android:textstyle="bold" /> <edittext android:id="@id/year_text" android:hint="@string/year_hint" android:inputtype="number" android:selectallonfocus="true" android:singleline="true" /> </tablerow> <tablerow> <textview android:text="@string/number_label" android:textstyle="bold" /> <edittext android:id="@id/number_text" android:hint="@string/number_hint" android:inputtype="number" android:selectallonfocus="true" android:singleline="true" /> </tablerow> <tablerow> <textview android:text="@string/value_label" android:textstyle="bold" /> <edittext android:id="@id/value_text" android:hint="@string/value_hint" android:inputtype="numberdecimal" android:selectallonfocus="true" android:singleline="true" /> </tablerow> <tablerow> <textview android:text="@string/count_label" android:textstyle="bold" /> <edittext android:id="@id/count_text" android:hint="@string/count_hint" android:inputtype="number" android:selectallonfocus="true" android:singleline="true" /> </tablerow> <tablerow> <textview android:text="@string/player_name_label" android:textstyle="bold" /> <autocompletetextview android:id="@id/player_name_text" android:completionthreshold="1" android:hint="@string/player_name_hint" android:inputtype="textcapwords" android:selectallonfocus="true" android:singleline="true" /> </tablerow> <tablerow> <textview android:text="@string/team_label" android:textstyle="bold" /> <autocompletetextview android:id="@id/team_text" android:completionthreshold="1" android:hint="@string/team_hint" android:inputtype="textcapwords" android:selectallonfocus="true" android:singleline="true" /> </tablerow> <tablerow> <textview android:text="@string/player_position_label" android:textstyle="bold" /> <spinner android:id="@id/player_position_text" android:hint="@string/player_position_hint" android:singleline="true" /> </tablerow> </tablelayout> </scrollview>
apparently robotium finds ad, instead of scrollview. robotium doesn't know how deal , ignores instead of causing error.
i ending writing own function scrolling:
public static void scrolldown(final scrollview scrollview) { scrollview.post(new runnable() { @override public void run() { scrollview.arrowscroll(scrollview.focus_down); } }); }
Comments
Post a Comment