2013-04-11 52 views
0

我正在使用「delnames」對象數組來創建這些動物園項目和另一種方法,我想刪除它們。創建需要爲每個單獨的方法,但刪除不,只需點擊刪除將做。所以我想在同一個數據提供者對象數組上迭代它。
這是我想要實現的;我正在使用java在ubuntu上編寫我的腳本。如何迭代到對象數組的長度?

@DataProvider(name = "delnames") 
    public Object[][] dnames() { 
     return new Object[][] { { "zoo" }, { "owl" }, { "lion"}, 
         { "Peacock" }, { "Chimp" }, { "Fish" }, {"Duck"} }; 
    } 

@Test(dataProvider = "delnames") 
public void delete(String name1){ 
for (lenth of dnames){ ================ >> HOW ????? 
driver.findElement(By.linkText("delete")); 
syso(name1+" is deleted"); 
} 
} 
+1

你有沒有試過用「迭代數組java」或「for循環數組java」或類似的東西? – Alderath 2013-04-11 10:49:16

回答

1

如果它是一個ArrayList或載體:

for (int i = 0; i < dnames.size(); i++) { 
    ... 
} 

如果它是一個數組:不是二維數組

for (int i = 0; i < dnames.length; i++) { 
    ... 
} 
+0

@jampI已經嘗試了你給我的東西。我嘗試了**(int i = 0; i {
} **,但它只提取數組中的第一項。我想借助數組刪除數組中的所有這7個項目。 – user2172723 2013-04-11 11:01:32

+0

你想刪除數組本身還是清空數組? – 2013-04-11 11:16:41

+0

不是數組:)。該項目來自我的應用程序。我已經創建了幾個項目,現在我必須刪除它們,以便在控制檯中查看此信息,我正在將系統置於「項目已刪除」狀態。項目的刪除只是在創建之後進行的,所以我想兩次使用相同的數組。首先我用於創建然後刪除。 – user2172723 2013-04-11 13:04:02

0

我認爲你可以使用選一個維數組, 。

Object dnames [] = new Object[]{"owl","zoo","Chimp","Fish","Duck"}; 

我們可以通過一個維數組環路顯然如下

for(Object item: dnames) 
{ 
System.out.println(item); // do your stuff here with item 
} 
+0

我們可以做什麼迭代一個二維數組?我們需要刪除然後打印「'item'+」已刪除「,對於我的問題中該數組的每個項目? – user2172723 2013-04-11 11:27:11

+0

@Cedric,我嘗試了你的方式並將其更改爲一維數組,然後應用您給我的循環。但它給出了dnames下的錯誤(red groovy line):「將params的類型改爲object」,當我這樣做時,它會在第二行的參數下面給出紅線,表示只能遍歷數組或java實例的實例.lang.iterable。 – user2172723 2013-04-12 07:54:54

0
@Test(dataProvider = "delnames") 
public void delete(String name1){ 
    for (Object[] params : dnames()) { 
    for (Object o : params) { 
     ... 
    } 
    } 
} 

,你不想做這個測試中的方法,因爲dnames()是它的數據提供者,但我假設你只是以此爲例。

+0

我嘗試了你的方式,並改變爲一維數組,並應用了你給我的循環,但它給出dnames下的錯誤(紅色groovy行):「將params的類型更改爲對象」,當我這樣做,它會在第二行的params下給出紅線,說只能迭代和實例數組或java.lang.iterable的實例 – user2172723 2013-04-12 10:01:38