【问题标题】:Toggle an element using selenium webdriver使用 selenium webdriver 切换元素
【发布时间】:2025-12-17 21:35:01
【问题描述】:

我在网页中有一个切换元素。 使用硒我必须向右切换。我不确定如何使用硒来完成

其实我需要点击下面的元素来切换

<div class="right">
<input id="app_in" class="cmn-toggle cmn-toggle-round" type="checkbox" value="false">
<label class="preference" tabindex="2" data-preference="inFlag" data-guid="26865MS" for="app_in"></label>
</div>

我尝试使用以下代码单击复选框,但得到"Element is not currently visible and so may not be interacted with" error

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

【问题讨论】:

  • 你试过mouse hover吗?
  • 我认为你应该使用 WebDriverWait *.com/questions/11736027/webdriver-wait-for-element
  • 老实说,这个问题并不是关于切换元素。这是关于不理解为什么一个元素不可见。坦率地说,你没有努力理解你的错误信息。标题具有误导性,问题缺乏研究。这对于想知道如何实际切换元素的未来读者没有帮助。所以我投了反对票。如果您修复它,我会将其更改为赞成:)

标签: java selenium selenium-webdriver automation


【解决方案1】:

这里一种可能的解决方案是等待元素变得可见:

WebDriverWait wait = new WebDriverWait(webDriver, 10);
WebElement element wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("app_in")));

element.click();

如果没有帮助,请尝试单击元素through javascript

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);

【讨论】: