【问题标题】:No way to click on a checkbox using selenium with Java无法在 Java 中使用 selenium 来单击复选框
【发布时间】:2021-12-31 08:55:01
【问题描述】:

这是我的 HTML 元素

<div _ngcontent-rju-c99="" class="mb-5 custom-control custom-checkbox">
       <input _ngcontent-rju-c99="" required="" type="checkbox" id="tosAccept" name="tosAccept" 
       angularticslabel="AcceptCgu" angularticsvalue="tosAccepted ? 'accepted' : 'notAccepted'" 
       class="custom-control-input ng-untouched ng-pristine ng-invalid"> ==$0
       <label _ngcontent-rju-c99="" for="tosAccept" class="custom-control-label">Acepto las 
           <a href="some link" target="_blank">condiciones generales de uso</a>
      </label>
</div>

我想点击输入,这是一个启用按钮的复选框,问题是我不能,尝试了所有可能的选择器(id,name,css,by xpath,by name by id .. .) 没有任何效果,有趣的事实是输入不会结束! (否)这可能会导致这个问题,但我猜它可能与角度有关。

我当然设置了计时器 (wait.until(ExpectedConditions.visibilityOfElementLocated)

请问有什么解决办法吗?几天以来我一直坚持这一点

【问题讨论】:

  • 您可以分享链接吗?问题究竟出在哪里?找到元素?还是点击找到的元素?
  • 这是一个通过私有链接登台的 Web 应用程序:/ 问题是找到没有点击它的元素
  • 你能在 chrome 开发者控制台中搜索它吗?另外,请检查输入元素(或其任何祖先)是否是框架或阴影 dom 的一部分?
  • 好的,我会试试的

标签: java angular selenium selenium-webdriver


【解决方案1】:

解决

WebElement checkbox = driver.findElement(By.id("tosAccept"));
            ((JavascriptExecutor)driver).executeScript("var elem=arguments[0]; setTimeout(function() {elem.click();}, 100)", checkbox);

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 2018-04-24
    • 1970-01-01
    相关资源
    最近更新 更多