Machete
Machete

Reputation: 23

Can't Select Checkbox, Selenium WebDriver

I am unable to select a checkbox with Selenium WebDriver in Java. I tried by Xpath but no result. WebDriver can't click on element. I tried with Selenium IDE - recorder, no results.

Here it is - html code for checkbox

enter image description here

I try:

1.

driver.findElement(By.xpath(".//form[@id='placeOrderForm1']/div[@class='terms right']/label")).click();

2.

driver.findElement(By.id("Terms1")).click();

3.

driver.findElement(By.cssSelector("label")).click();

4.

driver.findElement(By.xpath("//div[3]/form/div/input")).click();

Nothing works. Please help.

Upvotes: 0

Views: 9265

Answers (4)

K.Krishnakanth
K.Krishnakanth

Reputation: 127

You can find the element by a unique identifier. In this case, we can use name or id. The better choice is to go with id.

WebElement element = driver.findElement(By.name("termsCheck"));
element.click();

or you can use this one also

driver.findElement(By.id("Terms1")).click();

Upvotes: 0

Ankur
Ankur

Reputation: 1086

Your code seems correct. Specially this one -

driver.findElement(By.id("Terms1")).click();

It might be possible the element you are clicking is not visible in the page scroll. Try to move to the element first and then click.

Try with this -

WebElement elem = driver.findElement(By.id("Term1"));
Actions action = new Actions(driver).
action.moveToElement(elem).click().build().perform();

Hope this help.

Upvotes: 1

undetected Selenium
undetected Selenium

Reputation: 193088

Here is the Answer of your Question:

As you mentioned unable to select a checkbox, actually we don't select the checkbox, we checkmark the checkbox. The checkbox you depicted have an id as Terms1 and name astermsCheck`. So you use either of the locators to checkmark the checkbox as follows:

driver.findElement(By.id("Terms1")).click();

OR

element = driver.findElement(By.name("termsCheck")).click();

Let me know if this Answers your Question.

Upvotes: 0

Try using JavascriptExecuter Hope this will help

WebElement element = driver.findElement(By.id("Terms1"));
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].click();", element );

Upvotes: 2

Related Questions