Java 无法选中复选框,Selenium WebDriver

Java 无法选中复选框,Selenium WebDriver,java,html,selenium,xpath,checkbox,Java,Html,Selenium,Xpath,Checkbox,我无法使用Java中的Selenium WebDriver选中复选框。 我尝试了Xpath,但没有结果。 WebDriver无法单击元素。 我尝试使用Selenium IDE-recorder,没有结果 下面是复选框的html代码 我尝试: 一, 二, 三, 四, 什么都不管用。 请帮助。尝试使用JavascriptExecuter,希望这会有所帮助 WebElement element = driver.findElement(By.id("Terms1")); JavascriptExecu

我无法使用Java中的Selenium WebDriver选中复选框。 我尝试了Xpath,但没有结果。 WebDriver无法单击元素。 我尝试使用Selenium IDE-recorder,没有结果

下面是复选框的html代码

我尝试:

一,

二,

三,

四,

什么都不管用。 请帮助。

尝试使用JavascriptExecuter,希望这会有所帮助

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

以下是你问题的答案:

正如您提到的,无法选中复选框,实际上我们没有选中复选框,而是选中复选框。您描述的复选框id为Terms1,名称为astermsCheck`。因此,您可以使用任一定位器选中复选框,如下所示:

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


如果这回答了您的问题,请告诉我。

您的代码似乎正确。特别是这个-

driver.findElementBy.idTerms1.click

您正在单击的元素可能在页面滚动中不可见。尝试先移动到图元,然后单击

试试这个-


希望对您有所帮助。

您可以通过唯一标识符找到元素。在这种情况下,我们可以使用name或id。更好的选择是使用id

WebElement element = driver.findElement(By.name("termsCheck"));
element.click();
或者你也可以用这个

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

乍一看,您似乎正在单击标签,至少在案例1和案例3中是这样。该页面可能位于框架内。请检查页面是否包含任何iframe标记。如果此复选框位于框架内,则使用switch to frame方法并尝试查找元素。是否收到错误消息?只需等待一段时间,然后使用driver.findElementBy.idTerms1.click;手动单击它,并检查当您单击复选框(按id)时html中发生的更改-它什么也不做,或者您得到一个异常?哪一个?嗨,我试过了,但我得到了-org.openqa.selenium.WebDriverException:TypeError:cannotaccess deadobject@Machete你能考虑展示一下你的作品吗?谢谢。我得到-org.openqa.selenium.webdrivexception:TypeError:can't access dead object I'm stack here:/虽然这段代码可能会回答这个问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。当然,我会添加。谢谢您的建议。请尝试driver.switchTo.defaultContent;在使用findElement之前。让我知道这是否有效。当焦点不在查找元素的框架上时,通常会出现此问题。如果要对其执行操作的元素位于不同的帧上,则在查找元素之前先切换到该帧。是!最后,问题是,他遗漏了他的默认框架。
WebElement element = driver.findElement(By.id("Terms1"));
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].click();", element );
driver.findElement(By.id("Terms1")).click();
element = driver.findElement(By.name("termsCheck")).click();
WebElement elem = driver.findElement(By.id("Term1"));
Actions action = new Actions(driver).
action.moveToElement(elem).click().build().perform();
WebElement element = driver.findElement(By.name("termsCheck"));
element.click();
driver.findElement(By.id("Terms1")).click();