我试图使用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)
答案 0 :(得分:1)
我复制了上面给出的代码,它对我有用。我的cssLocator是:
"div[class=\'callout\'] a"
。
我认为问题是由于提供给JavaScript函数的未转义单引号。
答案 1 :(得分:0)
这个功能对我很有用......
您的CSS标识符中似乎存在轻微的语法问题......
试试这个 -
getCSSCount("div[class=team-name]");
此外,如果您计算的元素包含在iframe中,请确保使用selenium.selectFrame(...);
在该框架内设置焦点。