package jp.vmi.selenium.selenese.subcommand;
import java.util.List;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriverException;
import org.openqa.selenium.WebElement;
import jp.vmi.selenium.selenese.Context;
import static jp.vmi.selenium.selenese.command.ArgumentType.*;
/**
*
*/
public class GetCssCount extends AbstractSubCommand<Number> {
private static final int ARG_CSS_LOCATOR = 0;
private static final String CSS_EQ = "css=";
/**
* Constructor.
*/
public GetCssCount() {
super(CSS_LOCATOR);
}
@Override
public Number execute(Context context, String... args) {
String cssLocator = args[ARG_CSS_LOCATOR];
if (!cssLocator.startsWith(CSS_EQ))
cssLocator = CSS_EQ + cssLocator;
try {
List<WebElement> elements = context.findElements(cssLocator);
return elements.size();
} catch (WebDriverException e) {
if (e.getCause() instanceof NoSuchElementException)
return 0;
throw e;
}
}
}