Java 未选中Selenium复选框

Java 未选中Selenium复选框,java,selenium-webdriver,xpath,css-selectors,webdriverwait,Java,Selenium Webdriver,Xpath,Css Selectors,Webdriverwait,我正在测试这个网站上的隐私声明复选框 复选框的HTML代码为 <input type="checkbox" name="registryTandCs" id="registryTandCs" value="" class="form-check-input form-check-input--custom" required="required" data-parsle

我正在测试这个网站上的隐私声明复选框

复选框的HTML代码为

<input type="checkbox" name="registryTandCs" id="registryTandCs" value="" class="form-check-input form-check-input--custom" required="required" data-parsley-multiple="registryTandCs">
然而,它似乎不起作用。 我也试过了

WebElement checkBox = driver.findElement(By.id("registryTandCs"));
checkBox.click();

如果有帮助的话,该网站就是

主要问题是,当您尝试单击复选框时,其他元素被单击。您可以看到输入和标签标签重叠(请检查所附图像)。

org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element 
<input type="checkbox" name="registryTandCs" id="registryTandCs" value="" class="form-check-input form-check-input--custom" required="required" data-parsley-multiple="registryTandCs"> 
is not clickable at point (655, 517). 
Other element would receive the click: 
<label for="registryTandCs" class="form-check-label form-check-label--grey">...</label>
屏幕截图:

WebElement checkBox = driver.findElement(By.id("registryTandCs"));
Actions action = new Actions(driver);
action.moveToElement(checkBox).click().build().perform();
WebElement checkBox = driver.findElement(By.id("registryTandCs"));
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].click();", checkBox);

始终检查错误堆栈跟踪。

org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element 
<input type="checkbox" name="registryTandCs" id="registryTandCs" value="" class="form-check-input form-check-input--custom" required="required" data-parsley-multiple="registryTandCs"> 
is not clickable at point (655, 517). 
Other element would receive the click: 
<label for="registryTandCs" class="form-check-label form-check-label--grey">...</label>
使用JavascriptExecutor:

WebElement checkBox = driver.findElement(By.id("registryTandCs"));
Actions action = new Actions(driver);
action.moveToElement(checkBox).click().build().perform();
WebElement checkBox = driver.findElement(By.id("registryTandCs"));
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].click();", checkBox);
单击元素上的()

  • 身份证:

  • 姓名:

  • CSS选择器:

  • xpath:


理想情况下,在需要为
元素归纳的元素上单击()
,以便将
元素归纳为可折叠()
,您可以使用以下任一选项:

  • 身份证:

  • 姓名:

  • CSS选择器:

  • xpath:

driver.findElement(By.cssSelector("input#registryTandCs[name='registryTandCs']")).click();
driver.findElement(By.xpath("//input[@id='registryTandCs' and @name='registryTandCs']")).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("registryTandCs"))).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.name("registryTandCs"))).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#registryTandCs[name='registryTandCs']"))).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='registryTandCs' and @name='registryTandCs']"))).click();