2014-06-10 52 views
0

我的方案是:我正在處理價格比較Web應用程序,每個結果頁面上有3個現在應用按鈕。有4個結果頁面,每頁有3個現在應用按鈕。所以現在有12個應用按鈕。在我的測試過程中,我想爲每個測試用例選擇一個按鈕。要選擇第一頁我得到了現在隨機適用於:從隨機頁面點擊隨機按鈕

Random rnd = new Random(); 
List<WebElement> getApplyButton = driver.findElements(By.className("join-now")); 
getApplyButton.get(rnd.nextInt(getApplyButton.size())).click();' 

我用java +網絡驅動器

+0

rnd.nextInt()將返回一個值0 - 1(不包括1),並且從你的方法中返回0 - getApplyButton大小的值。所以如果大小返回1000,你最終會做'getApplyButton.get(0-999).click(); – Sky

+0

我試過「getApplyButton.get(rnd.nextInt(0-12))。click();」得到下面的錯誤:java.lang.IllegalArgumentException:n必須爲正數 \t at java.util.Random.nextInt(Unknown Source) – user3435410

+0

它是'getApplyButton.get(rnd.nextInt(12))。click();'如果你想要得到0 - 11,如果它是1 - 12然後做'getApplyButton.get(rnd.nextInt(12)+ 1).click();' – Sky

回答

0
int randomInt = (int)(Math.random() * 12); 

Math.random()會給你一個隨機的雙0和1(不包括1)

之間

* 12將使該雙是0到12之間(雖然遇不到12,所以你不必擔心IndexOutOfBoundsException異常。

然後澆鑄到一個(int)將截斷小數部分只留下整數0之間和12

所以,在你的例子:

int randomInt = (int)(Math.random() * 12); 
List<WebElement> getApplyButton = driver.findElements(By.className("join-now")); 
getApplyButton.get(randomInt).click();