2014-07-18 62 views
1

我目前有以下代碼,它定位了Show id,然後option標記中的元素在下面並逐個打印出來。從選項列表中構建數組

WebElement dropDown = driver.findElement(By.id("Show")); 
      List<WebElement> options = dropDown.findElements(By.tagName("option")); 


      for (WebElement el : options) { 
       System.out.println(el.getAttribute("text")); 
      } 

我該如何修改它,以便它構建一個所有文本元素的數組,而不是逐個打印出來?

回答

0

您只需聲明另一個數組(或列表,取決於您的偏好)並更改System.out.println()語句。

對於任何列出對象的文本屬性是:

for(WebElement el : options){ 
    secondList.Add(el.getAttribute("text")); 
} 

對於數組,這將是最簡單的使用索引:

for(int i = 0; i < options.Size(); i++){ 
    secondArray[i] = options.Get(i).getAttribute("text"); 
} 
0

在webdriver的我們在Select類中的方法獲取選擇標籤中的所有選項。

List<WebElement> options = new Select(driver.findElement(By.id("Show"))).getOptions(); 

要獲取所有選項值數組,請遵循下面的邏輯。

public String[] getOptions() { 
    String optionValues=""; 
    List<WebElement> options = new Select(driver.findElement(By.id("Show"))).getOptions(); 
    for(WebElement eachOption : options) { 
     optionValues+=eachOption.getText()+","; 
    } 
    return optionValues.split(","); 
}