Reaz Patwary
Reaz Patwary

Reputation: 834

Check box selection by label without xpath Options

In our application we have check box under one div, so i cant select css for any specific check box. We will run the ame test on android browser as well and dont want to use xpath to locate the elements. Please help me to find a way to locate the check box by label .

this is the sample code i wrote the first offer from the list using css class:

List select1 = driver.findElements(By.cssSelector(".offer"));//.offer is css for offer Class
driver.findElement((By) select1.get(0)).click();//want to click on first element

java.lang.ClassCastException: org.openqa.selenium.firefox.FirefoxWebElement cannot be cast to org.openqa.selenium.By at com.pontiflex.webview.browser.MultiofferPageTests.withoutOffer(MultiofferPageTests.java:22) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) 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)

the scenario is we have a offer class where we all offer displaying with different label and checkbob and i have to select any specific check box. I tried above code gave me following error

Any solution????

Thanks RP

Upvotes: 0

Views: 758

Answers (1)

CBRRacer
CBRRacer

Reputation: 4659

why not do something like this

List<WebElement> select1 = driver.findElements(By.cssSelector("div[class='offer'] input[type='checkbox']"));
select1.get(0).click();

Upvotes: 3

Related Questions