专注于元素Selenium

时间:2013-07-22 15:09:33

标签: java xpath selenium webdriver selenium-webdriver

我有一个屏幕,其中包含一组按下特定键时显示的过滤器。我需要自动选择这些过滤器。

每个过滤器都有一个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 个答案:

答案 0 :(得分: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();
        }
    }

}