Selenium Java-选中复选框而不使用。单击()

Selenium Java-选中复选框而不使用。单击(),java,selenium,Java,Selenium,我想使用Selenium和Java将一些复选框标记为选中状态,但在.css样式表中,它们的“宽度”和“高度”设置为“100”,但在浏览器中它们显示为普通复选框。因此,selenium会找到它们并成功执行.click()函数,但复选框不会被选中。 是否有一种方法可以简单地将复选框设置为选中,而不使用.click() 没有可复制的样本很难说,但您可以尝试通过javascript单击: 请看这里的区别: 没有可复制的样本很难说,但您可以尝试通过javascript单击: 请看这里的区别: 恐怕

我想使用Selenium和Java将一些复选框标记为选中状态,但在.css样式表中,它们的“宽度”和“高度”设置为“100”,但在浏览器中它们显示为普通复选框。因此,selenium会找到它们并成功执行.click()函数,但复选框不会被选中。
是否有一种方法可以简单地将复选框设置为选中,而不使用.click()

没有可复制的样本很难说,但您可以尝试通过javascript单击:

请看这里的区别:


    • 没有可复制的样本很难说,但您可以尝试通过javascript单击:

      请看这里的区别:


      恐怕复选框上没有select()方法, 但是你可以写这样的东西,然后再利用它。。它将抽象select的操作

      if ( !driver.findElement(By.id("idOfTheElement")).isSelected() )
      {
          driver.findElement(By.id("idOfTheElement")).click();
      }
      

      恐怕复选框上没有select()方法, 但是你可以写这样的东西,然后再利用它。。它将抽象select的操作

      if ( !driver.findElement(By.id("idOfTheElement")).isSelected() )
      {
          driver.findElement(By.id("idOfTheElement")).click();
      }
      

      这与click()很相似,调用JS执行器会增加额外的开销吗?@codeMan不,这完全不同:。我不知道!作者还说这应该“几乎永远”使用。@codeMan好吧,这取决于你想做什么。如果这是为了抓取,或者是为了解决特定于浏览器的问题而采取的一种变通方法,那么这是非常好的。我同意,在对应用程序进行UI测试时应该避免这种情况。这与click()类似,但调用JS执行器会增加额外的开销吗?@codeMan不,这两种情况完全不同:。我不知道这一点!作者还说这应该“几乎永远”使用。@codeMan好吧,这取决于你想做什么。如果这是为了抓取,或者是为了解决特定于浏览器的问题而采取的一种变通方法,那么这是非常好的。我同意,通常在UI测试应用程序时应该避免这种情况。问题是正常。单击()不会激活复选框。问题是正常。单击()不会激活复选框。