I have written a method which will count the no of elements in <divs> and will return the number.
public int getNumberOfOpenBets() {
openBetsSlip = driver.findElement(By.id("form_open_bets"));
openBets = openBetsSlip.findElements(By.className(" cashout_noCash"));
return openBets.size();
}
This is the page source:
<form id="form_open_bets" method="post" name="form_open_bets">
<input type="hidden" value="" name="action">
<input type="hidden" value="" name="bet_id">
<input type="hidden" value="" name="cashout_price">
<input id="target_page" type="hidden" value="" name="target_page">
<div id="By.id" class="slipWrapper ">
<div id="openBets_header"></div>
<div id="cashout_1626" class=" cashout_noCash">
<div id="cashout_1625" class=" cashout_noCash">
<div id="cashout_1615" class=" cashout_noCash">
<div id="cashout_1614" class=" cashout_noCash">
<div id="cashout_1613" class=" cashout_noCash">
</div>
</div>
</div>
</div>
</div>
</div>
</form>
Below is the error log. Seems like WerbDriver doesn't support spaces in class names. Can anyone please guide me to use CSS selector in order to find the elements?
Compound class names are not supported. Consider searching for one class name and filtering the results or use CSS selectors.
org.openqa.selenium.InvalidSelectorException: Compound class names are not supported. Consider searching for one class name and filtering the results or use CSS selectors.
For documentation on this error, please visit: http://seleniumhq.org/exceptions/invalid_selector_exception.html
Build info: version: '2.31.0', revision: '1bd294d185a80fa4206dfeab80ba773c04ac33c0', time: '2013-02-27 13:51:26'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_17'
Driver info: driver.version: unknown
at org.openqa.selenium.By.className(By.java:131)
at elements.betslip.Betslip.getNumberOfOpenBets(Betslip.java:136)
at testSomething(SomethingTest.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)