[英]how to check check box and getting whether checkbox is checked in javascript selenium
[英]Java Selenium getting Elements out of a Form which are Checked with JavaScript
我想選擇復選框並檢查是否選中了HTML看起來像這樣
h3>Checkboxes</h3>
<form id="checkboxes">
<input type="checkbox">
checkbox 1
<br>
<input checked="" type="checkbox">
checkbox 2
</form>
</div>
h3>Checkboxes</h3>
<form id="checkboxes">
<input type="checkbox">
checkbox 1
<br>
<input checked="" type="checkbox">
checkbox 2
</form>
</div>
<script>
var form = document.getElementById('checkboxes');
var checkboxes = form.getElementsByTagName('input');
for (var i=0, len=checkboxes.length; i<len; i++) {
checkboxes[i].onclick = function() {
this.checked ? this.setAttribute("checked", "") : this.removeAttribute("checked");
}
}
</script>
我試圖通過xpath,id和tagName來獲取elemtns,但沒有任何效果。
這是我的Java代碼:
WebDriver driver = new FirefoxDriver();
driver.get("http://the-internet.herokuapp.com/");
driver.findElement(By.xpath("html/body/div[2]/div/ul/li[5]/a")).click();
List<WebElement> elements = driver.findElements(By.id("checkboxes"));
我的探究是元素的大小為0
您可以使用下面編寫的Java代碼找到復選框編號:
System.setProperty("webdriver.gecko.driver", "src/geckodriver");
WebDriver driver = new FirefoxDriver();
WebDriverWait wait = new WebDriverWait(driver, 30);
driver.get("http://the-internet.herokuapp.com/");
driver.findElement(By.xpath("html/body/div[2]/div/ul/li[5]/a")).click();
By locator = By.xpath("//input[@type='checkbox']");
wait.until(ExpectedConditions.presenceOfElementLocated(locator));
wait.until(ExpectedConditions.visibilityOfElementLocated(locator));
List<WebElement> elements = driver.findElements(locator);
int size = elements.size();
System.out.println(size);
您可以選擇任何所需的復選框,然后可以在網頁上檢查該復選框的狀態:
用於檢查復選框狀態的代碼段
for(int i=0; i<elements.size();i++){
String check_state= elements.get(i).getAttribute("checked");
if(check_state == null){
System.out.println("Checbox "+(i+1)+" is not selected");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.