Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 代码组复选框选中c_C#_Checkbox - Fatal编程技术网

C# 代码组复选框选中c

C# 代码组复选框选中c,c#,checkbox,C#,Checkbox,我想使用CodedUI选择html表单上的多个复选框,如下所示。我尝试了以下方法,但我不确定如何选择特定的复选框,如果有人能想出一些想法,我将不胜感激。谢谢: UITestControl checkBoxes = new UITestControl(browser); checkBoxes.TechnologyName = "Web"; checkBoxes.SearchProperties.Add("TagName", "TD"); checkBoxes.Sea

我想使用CodedUI选择html表单上的多个复选框,如下所示。我尝试了以下方法,但我不确定如何选择特定的复选框,如果有人能想出一些想法,我将不胜感激。谢谢:

    UITestControl checkBoxes = new UITestControl(browser);
    checkBoxes.TechnologyName = "Web";
    checkBoxes.SearchProperties.Add("TagName", "TD");
    checkBoxes.SearchProperties.Add("ControlType", "Cell");
    checkBoxes.SearchProperties.Add("Name", "checkboxes[]");
    // checkBoxes.SearchProperties[HtmlCheckBox.PropertyNames.Value] = "cb2";
    //  checkBoxes.SearchProperties.Add("InnerText", "Checkbox Items:");

    checkBoxes.SetProperty("Checked", true);




    <tr>
      <td>
        Checkbox Items:<br />
        <input type="checkbox" name="checkboxes[]" value=
        "cb1" />Checkbox 1 
        <input type="checkbox" name="checkboxes[]"
        value="cb2" />Checkbox 2 
        <input type="checkbox" name=
        "checkboxes[]" value="cb3" checked="checked" />Checkbox 3
      </td>
    </tr>

对其他两个复选框执行相同的操作。

好的,这取决于您到底想做什么。如果可能,请在每个复选框中添加一个标识符,以便您可以更轻松地识别它。如果不能,但可以假设同一顺序中始终有x个复选框,那么仍然可以使其工作

添加标识符 复选框项目: 复选框1 复选框2 复选框3 全部查找并迭代

var checkBoxesLookupFunc==>新的HtmlCheckBoxtableRow.FindMatchingControls.Cast

HtmlCheckBox firstBox=checkBoxesLookupFunc.First

HtmlCheckBox secondBox=复选框lookupfunc.Skip1.First

HtmlCheckBox thirdBox=复选框lookupfunc.Skip2.First

您必须使用返回新搜索集合的函数,因为对象似乎无法再次查找。我认为这与在查找匹配控件时未正确设置控件的查询路径的内部存储有关

<>我会考虑在编码的UI上使用抽象来帮助编写选择器。我有一个库来帮助实现这一点,它是对编码ui的一组简单扩展。使用扩展,您可以编写

var firstBox = browser.Find<HtmlCheckBox>().WithDataAttribute("automation-name", "firstBox");
var firstBox = browser.FindAll<HtmlCheckBox>().First();
还有其他库提供了使用搜索的功能

HtmlCheckBox firstBox = new HtmlCheckBox(tableRow);
firstBox.SearchProperties.Add(HtmlControl.PropertyNames.ControlDefinition, String.Format("{0}=\"{1}\"", "data-automation-name", "firstBox"), PropertyExpressionOperator.Contains);

HtmlCheckBox secondBox = new HtmlCheckBox(tableRow);
firstBox.SearchProperties.Add(HtmlControl.PropertyNames.ControlDefinition, String.Format("{0}=\"{1}\"", "data-automation-name", "secondBox"), PropertyExpressionOperator.Contains);

HtmlCheckBox thirdBox = new HtmlCheckBox(tableRow);
firstBox.SearchProperties.Add(HtmlControl.PropertyNames.ControlDefinition, String.Format("{0}=\"{1}\"", "data-automation-name", "thirdBox"), PropertyExpressionOperator.Contains);
var firstBox = browser.Find<HtmlCheckBox>().WithDataAttribute("automation-name", "firstBox");
var firstBox = browser.FindAll<HtmlCheckBox>().First();