Selenium 체크 박스 속성 "선택됨"
Java에서 Selenium을 사용하여 웹 앱의 확인란 확인을 테스트하고 있습니다. 코드는 다음과 같습니다.
private boolean isChecked;
private WebElement e;
e
체크 박스가있는 영역에 선언 하고 할당합니다.
isChecked = e.findElement(By.tagName("input")).getAttribute("checked").equals("true");
이상한 것은 getAttribute("checked")
반환 null
되므로NullPointerException
확인란의 HTML에는 checked
표시된 속성 이 없습니다 . 그러나 모든 input
요소 checked = "true"
에이 코드가 있으므로이 코드가 작동해야하는 경우가 아닙니까?
Webdriver를 사용하는 경우 찾고있는 항목은 선택됨입니다.
종종 확인란의 렌더링에서 지정하지 않는 한 선택된 속성을 실제로 적용하지 않습니다.
따라서 Selenium Webdriver에서 찾는 것은 다음과 같습니다.
isChecked = e.findElement(By.tagName("input")).Selected;
WebDriver Java API에는 Selected가 없으므로 위 코드는 다음과 같아야합니다.
isChecked = e.findElement(By.tagName("input")).isSelected();
if ( !driver.findElement(By.id("idOfTheElement")).isSelected() )
{
driver.findElement(By.id("idOfTheElement")).click();
}
if(checkBox.getAttribute("checked") != null) // if Checked
checkBox.click(); //to Uncheck it
and
체크가 참인지 확인하기 위해 문을 추가 할 수도 있습니다 .
cssSelector로 할 것입니다.
// for all checked checkboxes
driver.findElements(By.cssSelector("input:checked[type='checkbox']"));
// for all notchecked checkboxes
driver.findElements(By.cssSelector("input:not(:checked)[type='checkbox']"));
어쩌면 그것은 도움이 될지도 모릅니다 ;-)
몇 개의 확인란 만 선택 / 선택 취소하려는 여러 확인란이있는 경우 Chrome 드라이버에서 다음 작업이 수행됩니다 (IE 드라이버에서는 실패 함).
참고 : 내 확인란에는 연결된 ID가 없었으므로 문서에 따라 확인하는 가장 좋은 방법입니다. !
성명서의 시작 부분에 있는 기호에 유의하십시오 .
if(!driver.findElement(By.xpath("//input[@type='checkbox' and @name='<name>']")).isSelected())
{
driver.findElement(By.xpath("//input[@type='checkbox' and @name= '<name>']")).click();
}
셀레늄 프레임 워크의 메커니즘 :
여기서 셀레늄은 서버에 요청하고 태그 이름 입력으로 첫 번째 하위 요소를 가져옵니다.
WebElement e = e.findElement(By.tagName("input"));
해당 요소에 대한 속성을 받으려는 것보다
object attribute = e.getAttribute("checked")
그래서 사용
findElement(By.attribute("checked")
또는 사용
findElement(By.xpath("\\input[@checked='true']")
추신 : 나는 자바의 셀레늄 API에 익숙하지 않으므로 일부 메서드의 이름이 약간 다를 수 있습니다.
- 변수를 선언하십시오.
- 라디오 버튼에 대해 확인 된 속성을 저장합니다.
- if 조건이 있습니다.
가정하자
private string isChecked;
private webElement e;
isChecked =e.findElement(By.tagName("input")).getAttribute("checked");
if(isChecked=="true")
{
}
else
{
}
이 답변이 도움이되기를 바랍니다. CSharp Selenium 웹 드라이버에 대한 설명이 있으면 알려주십시오.
public boolean getcheckboxvalue(String element)
{
WebElement webElement=driver.findElement(By.xpath(element));
return webElement.isSelected();
}
참고 URL : https://stackoverflow.com/questions/8187772/selenium-checkbox-attribute-checked
'programing' 카테고리의 다른 글
iframe에서 상위 창의 요소에 액세스 (0) | 2020.11.17 |
---|---|
로컬 네트워크에서 GAE dev 앱 서버에 액세스 할 수있는 방법이 있습니까? (0) | 2020.11.17 |
PHP : 입력이 유효한 숫자인지 확인하는 가장 좋은 방법은 무엇입니까? (0) | 2020.11.17 |
Java의 상수에서 주석에 Enum 값을 제공하는 방법 (0) | 2020.11.17 |
Powershell 스크립트에서 BAT 파일을 실행하는 가장 안전한 방법 (0) | 2020.11.17 |