2013-07-22 65 views
0

我有一個屏幕,其中包含一組過濾器,當按下特定的鍵時顯示。我需要自動選擇這些過濾器。專注於一個元素硒

每個過濾器都有一個Xpath,它指向一個包含文本的html元素。我曾嘗試以下:

private List<WebElement> elements; 

public void reloadFilters() { 
    String FilterXPath = this.FILTER_ITEM_XPATH; 
    elements = webDriver.findElements(By.xpath(FilterXPath)); 
} 

然後

public void selectFilter(String filter) { 
    WebElement W; 
    Iterator I = elements.iterator(); 
    if (I.hasNext()) { 
     W = (WebElement)I; 
     if (W.getText().equals(filter)) { 
      new Actions(webDriver).moveToElement(W).perform(); 
     } 
    } 
} 

但我當我運行這段代碼,我得到:

java.lang.ClassCastException: java.util.ArrayList$Itr cannot be cast to org.openqa.selenium.WebElement 

我如何能執行此什麼建議嗎?

回答

1

變化;

W=(WebElement)I; 

W=(WebElement)I.next(); 

還,使用適當的變量名;

public void selectFilter(String filter) { 
    Iterator iter = elements.iterator(); 
    if (iter.hasNext()) { 
     WebElement element = (WebElement)iter.next(); 
     if (element.getText().equals(filter)) 
     { 
      new Actions(webDriver).moveToElement(element).perform(); 
     } 
    } 

} 
+0

這也有助於生成'Iterator'。 –