菜鸟一枚,被相同 id 的控件搞的很无奈,这种 id 相同的不知道怎么定位。还有很多类似的情况,id 相同,text 也相同。
换了头像帖子列表的头像不更新吗...
列表或者集合
list list=driver.find elements by id ("")
也可以获取父类,再通过父类去获取子类
看一下 SOLO 的 API。
android.view.View getView(String id, int index)
Returns a View matching the specified resource id and index.
元素个数及索引可以取 GRIDVIEW 的 COUNT 来计数。
index
如果中文能识别出来的话 就用 Ui selector 去定位
方案上面给出了..
实际上就是这样子
Java:
List<WebElement> textList = driver.findElementsByAndroidUIAutomator(
"new UiSelector().resourceId(\"com.xxx.xx:id/txtid\")");
String text = textList.get(5).getText();
Python:
textList = driver.find_element_by_android_uiautomator("new UiSelector().resourceId(\"com.xxx.xx:id/txtid\")")
for text in textList:
print text.text
用 instance
这个问题我也一直很困扰,请问楼主解决了吗?
lz 可参照下:
View view = null;
ListView listview = solo.getCurrentViews(ListView.class,view).get(0);
LinearLayout LL = (LinearLayout) listview.getChildAt(2);
TextView tx = (TextView) LL.findViewById(R.id.text);
在 LinearLayout 那指定第几个。。
@kesha0 代码贴了学习一下吧,LZ
ListView gridview=(ListView) this.getViewId("gridview");
LinearLayout temp=(LinearLayout) gridview.getChildAt(0);
RelativeLayout temp1=(RelativeLayout) temp.getChildAt(1);
solo.clickOnView(temp1.getChildAt(1));
这个只是例子,父控件的 ID 是唯一的,通过父控件的 getChildAt 方法来定位
RObotium 支持点击多个 ID 相同的 view 对象中的其中一个啊,
solo.clickOnView(solo.getView(id, Instance)) 就可以实现