2011-04-26 84 views
0

我正在尝试使用this博客帖子。获取CSS定位器的数量。但没有利用,方法 -无法获取CSSCount工作

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: ERROR: Threw an exception: unterminated string literal at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97) at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91) at com.thoughtworks.selenium.HttpCommandProcessor.getString(HttpCommandProcessor.java:262) at com.thoughtworks.selenium.DefaultSelenium.getEval(DefaultSelenium.java:471)

+0

你可以发布你正在计算的CSS定位器的HTML吗? – rs79 2011-04-26 13:42:26

回答

0

这个功能很适合我...

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

试试这个 -

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

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

1

我复制了上面给出的代码,它为我工作。我的cssLocator是:

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

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