我有一个屏幕,其中包含一组按下特定键时显示的过滤器。我需要自动选择这些过滤器。
每个过滤器都有一个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
有关如何执行此操作的任何建议?
答案 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();
}
}
}