无法让CSSCount工作

时间:2011-04-26 11:21:57

标签: javascript css selenium

我试图使用this博文。计算CSS定位器。但无济于事,方法是 -

public static int getCSSCount(String cssLocator) {
    String jsScript = "var cssMatches = eval_css(\"%s\", window.document);cssMatches.length;"; 
    return Integer.parseInt(selenium.getEval(String.format(jsScript, cssLocator))); 
}

和方法调用 -

getCSSCount("div[class='team-name'] a");

但我总是遇到以下异常 -

  

FAILED:   com.thoughtworks.selenium.SeleniumException:   错误:抛出异常:   未终止的字符串文字   com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)     在   com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91)     在   com.thoughtworks.selenium.HttpCommandProcessor.getString(HttpCommandProcessor.java:262)     在   com.thoughtworks.selenium.DefaultSelenium.getEval(DefaultSelenium.java:471)

2 个答案:

答案 0 :(得分:1)

我复制了上面给出的代码,它对我有用。我的cssLocator是:

"div[class=\'callout\'] a"

我认为问题是由于提供给JavaScript函数的未转义单引号。

答案 1 :(得分:0)

这个功能对我很有用......

您的CSS标识符中似乎存在轻微的语法问题......

试试这个 -

getCSSCount("div[class=team-name]");

此外,如果您计算的元素包含在iframe中,请确保使用selenium.selectFrame(...);在该框架内设置焦点。