2011-04-26 168 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函數的單引號。