現在有些線性佈局有子類別,一些不具備的。相似的一些有折扣,而且沒有。
所以,當我做這樣的事情:
List<WebElement> allFieldsInLayout = driver.findElements(By.id("com.flipkart.android:id/product_list_product_item_layout"));
List<WebElement> allTitlesOnCurrentScreen = driver.findElements(By.xpath("//*[@resource-id='com.flipkart.android:id/product_list_product_item_main_text']"));
List<WebElement> allsubTitlesOnCurrentScreen = driver.findElements(By.xpath("//*[@resource-id='com.flipkart.android:id/product_list_product_item_sub_text']"));
List<WebElement> allOfferPricesOnCurrentScreen = driver.findElements(By.xpath("//*[@resource-id='com.flipkart.android:id/product_list_product_item_price']"));
List<WebElement> allListPriceOnCurrentScreen = driver.findElements(By.xpath("//*[@resource-id='com.flipkart.android:id/product_list_product_item_mrp']"));
,然後嘗試打印在他們裏面的文字:
for(int i=0;i<allTitlesOnCurrentScreen.size();i++){
System.out.println("TITLE : "+allTitlesOnCurrentScreen.get(i).getAttribute("text")
+ "SUB TITLE : "+allsubTitlesOnCurrentScreen.get(i).getAttribute("text")
+ "OFFER PRICE : "+allOfferPricesOnCurrentScreen.get(i).getAttribute("text")
+ "LIST PRICE : "+allListPriceOnCurrentScreen.get(i).getAttribute("text")
);
}
我陣列外邊界異常。所以我想如果它有可能從這個列表的外部佈局獲得所有子字段的資源ID。我想是這樣的:
for(int i=0;i<allFieldsInLayout.size();i++){
List<WebElement> allElementsinCurrentLayout = allFieldsInLayout.get(i).findElements(By.xpath("//android.widget.RelativeLayout[@index='2']"));
for(int j=0;j<allElementsinCurrentLayout.size();j++) {
System.out.println("Layout " + allElementsinCurrentLayout.get(j));
}
}
但它給不同的是
Cannot use xpath locator strategy from an element. It can only be used from the root element)
我想在我的名單NULL,如果我沒有對應的子標題,或者如果沒有折扣是存在的。怎麼做 ?
爲什麼你用這種方法找到每一個項目?通過它的ID(或名稱,標籤等)查找每個項目可能更容易,如果您在此尋找它可以找到不同的方法來完成它。 –
@GastonF。你在說什麼方法? – GitCoder
[Here](http://www.codota.com/android/methods/android.app.Activity/findViewById)有一些使用findViewById的示例。 [Here](http://stackoverflow.com/a/6831562/1563878)按資源名稱查找。 [Here](http://stackoverflow.com/questions/8817377/android-how-to-find-multiple-views-with-common-attribute)其他方法。 –