가끔가다, findElement().click()
으로 반응하지 않는 체크박스나 라디오버튼이 있는 경우가 있습니다.
그럴때는 JavascriptExecuter
를 이용해서 실행해줍니다.
public void clickCheckbox(WebElement checkbox) {
((JavascriptExecutor) driver).executeScript("arguments[0].click();", checkbox);
}
public void clickRadioButton(WebElement radiobutton) {
((JavascriptExecutor) driver).executeScript("arguments[0].checked = true;", radiobutton);
}
클릭하고자 하는 체크박스나 라디오버튼이 여러개일 경우, 파라미터로 전달되는 WebElement
가 List<WebElement>
의 형태라던지, 혹은 다른 형이 올 수 있기에 적절히 핸들링해줘야합니다.
또한 실행하는 javascript문법은, 세미콜론(;
) 까지 같이 넣어주어야합니다.