0

特定のキーを押すと表示される一連のフィルターを含む画面があります。これらのフィルターの選択を自動化する必要があります。

各フィルターには、テキストを含む html 要素を指す Xpath があります。私は次のことを試しました:

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

これをどのように実行できるかについて何か提案はありますか?

4

1 に答える 1

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();
        }
    }

}
于 2013-07-22T15:13:06.880 に答える