【问题标题】:How to select a check box in selenium webdriver 2? [duplicate]如何在 selenium webdriver 2 中选中一个复选框? [复制]
【发布时间】:2017-02-15 18:49:24
【问题描述】:

这里是site。我需要在 selenium webdriver 中选中复选框。 Code

<div class="login-form__checkbox">
  <div class="fblock active">
    <div class="focusbox">
      <span class="abs" style="width:0px; height:0px; overflow:hidden; font-size:0px; zoom:1;">
        <input id="checkbox_accept-terms" type="checkbox" name="register[rules]"/>
      </span>
      <label class="icon f_checkbox inlblk vtop selected" relname="register[rules]"               for="checkbox_accept-terms"/>
      <label class="selected" for="checkbox_accept-terms">
        <strong>Rules</strong>                                                                                                                                                              
      </label>
    </div>
  </div>
</div>

我试过了:

driver.findElement(By.id("checkbox_accept-terms")).click();

driver.findElement(By.xpath("//span[@id='checkbox_accept-terms']/div[3]/div/div/label[1]")).click();

【问题讨论】:

标签: java selenium checkbox


【解决方案1】:

这是 chrome 在检查元素时给出的 xpath。

//*[@id="registerForm"]/div[3]/div/div/label[1]

这是对我有用的相对 xpath:

//label[@class="icon f_checkbox inlblk vtop"]

【讨论】:

    【解决方案2】:

    我尝试直接单击INPUT,但由于某种原因它不允许这样做。您只需单击LABEL,它就会选中该框。此代码有效。

    driver.findElement(By.cssSelector("label[for='checkbox_accept-terms']")).click();
    

    【讨论】:

      【解决方案3】:

      您也可以使用 JavaScriptExecutor 执行任务,使用您尝试过的相同定位器。看下面的代码sn-p:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-14
        • 2012-09-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多