2012-03-10 47 views
0

我需要使用WebDriver驗證下拉值。我已經在一個字符串數組期望值使用WebDriver驗證下拉值

字符串[] EXP = { 「產品標題 - 」, 「先生」, 「夫人」, 「小姐」, 「MS」, 「DR」, 「教授」} ;

我需要編寫一個函數,從下拉菜單中返回所有的值,我需要使用期望值進行斷言,下面是我寫下的用於從下拉列表中打印值的代碼,但是我需要聲明這些值預計的: -

WebElement dropdown = driver.findElement(By.id("ddlNights")); 
Select select = new Select(dropdown); 
List<WebElement> options = select.getOptions(); 
for(WebElement we:options) 
{ 
System.out.println(we.getText()); 
} 

誰能幫我寫一個返回下拉值的字符串數組的方法,使我們可以重新使用該方法在每一滴水驗證值下使用
Assert.assertTrue( Arrays.equals(Expected,Actual))

在此先感謝!

回答

2

試試這個

String[] exp = {"--Title--","Mr","Mrs","Miss","Ms","Dr","Prof"}; 
WebElement dropdown = driver.findElement(By.id("ddlNights")); 
Select select = new Select(dropdown); 

List<WebElement> options = select.getOptions(); 
for(WebElement we:options) 
{ 
    boolean match = false; 
    for (int i=0; i<exp.length(); i++){ 
     if (we.getText().equals(exp[i]){ 
     match = true; 
     } 
    } 
    Assert.assertTrue(match); 
} 

應該與預期的字符串一切可能性的每個元素進行比較。匹配只有在「找到」狀態纔會成立。您可以隨Assert一起播放該消息,因爲它隨時可能失敗。所以,你可以這樣做

Assert.assertTrue(match, we.getText()); 

這應該給你寫上webElement它沒有找到任何匹配 - 我不是100%肯定與該行 - 我沒有運行,以驗證它的任何IDE。