gpt4 book ai didi

java - 第二次单击复选框将被忽略

转载 作者:行者123 更新时间:2023-12-02 11:11:56 24 4
gpt4 key购买 nike

以下代码忽略第二个复选框单击。有人知道为什么以及如何解决吗?在最后一行设置断点以查看复选框是否仍处于选中状态...

private final static String CHECKBOXBUTTON_URL = "https://www.w3schools.com/html/tryit.asp?filename=tryhtml_Checkbox";
private final static String RESULT_IFRAME = "iframeResult";
private final static By CHECKBOX = By.xpath("/html/body/form/input[2]");

@Test
public void checkbox()
{
System.setProperty("webdriver.edge.driver", "MicrosoftWebDriver.exe");
WebDriver driver = new EdgeDriver();
FluentWait<WebDriver> wait = new WebDriverWait(driver, 0);
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
wait.withTimeout(Duration.ofSeconds(10)).pollingEvery(Duration.ofMillis(200));

driver.get(CHECKBOXBUTTON_URL);
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(RESULT_IFRAME));

driver.findElement(CHECKBOX).click();
wait.until(ExpectedConditions.elementToBeSelected(CHECKBOX));

driver.findElement(CHECKBOX).click(); // this click is ignored

driver.quit(); // break here; checkbox is still checked (but shouldn't)...
}

最佳答案

由于浏览器在框中显示复选标记的动画时间间隔,它被忽略。

driver.findElement(CHECKBOX).click();
wait.until(ExpectedConditions.elementToBeSelected(CHECKBOX));
//Something can be coded here
driver.findElement(CHECKBOX).click(); // this click is ignored

您可以选择以下两个语句中的任何一个。

  1. 添加 1 或 2 秒的硬等待。使用 Thread.sleep(2000) 。这将使传递动画稳定下来。

  2. 在目标复选框上使用 isSelected() 方法来确定它是否确实被选中。如果选择,该方法返回 true,否则返回 false。

关于java - 第二次单击复选框将被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50557553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com