【问题标题】:Detect if radio button is checked in webdriver检测是否在 webdriver 中选中单选按钮
【发布时间】:2015-06-15 20:24:35
【问题描述】:

我正在尝试验证是否选中了单选按钮。我有下面的 html 代码 sn-p 用于单选按钮。

<span class="jquery-hp-radio jquery-hp-radio-checked" style="-moz-user-select: none;">
<span class="mark">
<img src="http://someurl/images/empty.gif">
</span>
</span>

尝试使用以下代码 -

if(driver.findElement(By.className("mark")).isSelected()){
          System.out.println("True");
      }else
      {
          System.out.println("False");
      }     
  }

它给出的输出为 False - 即使默认选择单选按钮。

【问题讨论】:

  • isSelected() 仅适用于具体的复选框元素,例如
  • 您是否为正在执行检查的单选按钮使用正确的定位器?我可以看到 2 个类名.....
  • 我使用 xpath 而不是 className 来避免冲突,但没有任何区别。

标签: java selenium-webdriver webdriver


【解决方案1】:

我相信您的单选按钮的class 在选中时是jquery-hp-radio jquery-hp-radio-checked

所以你执行以下操作来检查按钮是否被选中

if(driver.findElement(By.xpath("//span[@class='mark']/..")).getAttribute("class").contains("checked")){
          System.out.println("True");
      }else
      {
          System.out.println("False");
      }   
  }

【讨论】:

    【解决方案2】:

    感谢@Rameshwar

    你的解决方案奏效了

    我能够检测到单选按钮是否被选中或未选中 "jquery-hp-radio jquery-hp-radio-checked"

    if(driver.findElement(By.xpath("//span[@class='mark']/..")).getAttribute("class").contains("checked")){
              System.out.println("True");
          }else
          {
              System.out.println("False");
          }   
      }
    

    【讨论】:

      【解决方案3】:

      如果在应用程序中默认选择单选按钮,则使用 get attribute()。

      例如

      if (driver.findelement(By.xpath ()).getattribute("componentid").endwith("true")){
      system.out.println("selected")
      }else{
      system.out.println("not selected")
      }
      

      【讨论】:

        猜你喜欢
        • 2014-07-11
        • 1970-01-01
        • 2016-09-26
        • 1970-01-01
        • 2022-01-21
        • 2012-03-07
        • 2014-02-06
        • 2021-01-25
        • 2014-04-23
        相关资源
        最近更新 更多