Checkbox在硒中无法正常工作

时间:2017-06-30 14:31:46

标签: java selenium-webdriver checkbox

我需要执行以下步骤:

  1. 检查是否勾选了复选框。
  2. a)如果勾选,则按照某些步骤进行操作

    b)如果未勾选,则勾选复选框并按照a)

    中的相同步骤操作

    这是我的HTML代码:

    <td style="width: 4.5%; padding-left: 2px;" class="heading" data-bind="css: selected() ? 'headingSelected' : 'heading'">
        <img title="Click to show all employees" data-bind="click: _apps.expandUnExpand, visible: !expanded()" class="clickable" src="/Content/Images/plus.gif" style="display: none;">
        <img title="Click to hide all employees" data-bind="click: _apps.expandUnExpand, visible: expanded()" class="clickable" src="/Content/Images/minus.png">
        <img title="Click To Select Application" data-bind="click: _apps.selectUnSelect, visible: !selected() &amp;&amp; !_apps.readOnly() " class="clickable" src="/Content/Images/unchecked.png">
        <img title="Click To Unselect Application" data-bind="click: _apps.selectUnSelect, visible: selected() &amp;&amp; !_apps.readOnly() " class="clickable" src="/Content/Images/checked.png" style="display: none;">
    </td>
    

    以下是我的代码:

    if(driver.findElement(By.xpath("//[@id='AuraACLs']/div[2]/div[1]/table/tbody/tr/td[1]/img[3]")).isEnabled()) //Xpath when checbox is ticked
    {
        System.out.println("checkbox is selected");
        driver.findElement(By.xpath("//button[text()='Add to ACL']")).click();
    }
    else if(driver.findElement(By.xpath("//[@id='AuraACLs']/div[2]/div[1]/table/tbody/tr/td[1]/img[3]")).isEnabled()) //xpath when checkbox is not ticked
    {
        System.out.println("checkbox is unselected");
        driver.findElement(By.xpath("//[@id='AuraACLs']/div[2]/div[1]/table/tbody/tr/td[1]/img[3]")).click();// tick the checkbox
        driver.findElement(By.xpath("//button[text()='Add to ACL']")).click();  
    }
    

    如果我尝试使用单一代码可以运行,但是当我结合使用时,If(if和else if)代码都不起作用

1 个答案:

答案 0 :(得分:1)

看起来你的if语句都在问同样的问题

if (checkbox.isEnabled())
{
  //Do this
}
else if (checkbox.isEnabled())
{
  // Do something else
}

但是在两个if语句中你的检查条件是相同的。将您的else-if更改为

else if (!checkbox.isEnabled()) !是一个否定运算符,并检查条件是否为真。