在Selenium中使用XPath检查或取消选中如何查找复选框?

时间:2016-06-13 12:52:08

标签: selenium selenium-webdriver selenium-rc selenium-chromedriver selenium-grid

无法查看复选框是否已检查?抛出异常。

我正在使用此XPath作为复选框:

.//*@id='row_SelectedProductURLIds0']//input[@id='actualcheckbox_SelectedProductURLIds' and @type='checkbox']

图像:

enter image description here

代码:

    public bool VerifyCheckbox(By by, String expected)
    {
        bool isPresence = false;
        WaitUntilElementIsPresent(by);
        //string value = GetText(by);
        //bool actual = Convert.ToBoolean(value);
        bool expect = Convert.ToBoolean(expected);
        // actual = expect ? isPresence = true : isPresence = false;
        isPresence = Driver.FindElement(by).Selected;
        Assert.AreEqual(expect, isPresence);
        if (isPresence != expect)
        {
            isPresence = false;
        }
        else
        {
            isPresence = true;
        }

        return isPresence;

    }

1 个答案:

答案 0 :(得分:0)

我不确定你想要完成的是什么,但我已经简化了它。

public bool VerifyCheckbox(By by, bool expected)
{
    bool actual = Driver.FindElement(by).Selected;
    Assert.AreEqual(expected, actual);
    return (expected == actual);
}

我不知道我明白为什么你需要断言如果它们相等 AND 如果它们相等则返回。这似乎是多余的。最好摆脱整个功能,然后执行以下操作。

Assert.AreEqual(expected, Driver.FindElement(By.Id("actualcheckbox_SelectedProductURLIds")).Selected);