Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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#_Asp.net_Webforms - Fatal编程技术网

C# 检查控件可见性的其他方法?

C# 检查控件可见性的其他方法?,c#,asp.net,webforms,C#,Asp.net,Webforms,我需要能够检查我的文本框是否可见。检查txtEntityName.Visible似乎不起作用,检查txtEntityName.Style[display]==none也不起作用,因为在html中,display:none似乎只适用于div本身。也就是说,div内部的文本框是不可见的,但它不包含该样式 是否有其他方法检查文本框是否可见?还是一种将txtEntityName的样式显式绑定到mydiv的方式? 我知道可以直接设置文本框的可见性,但我想在我走这条路之前看看是否有其他选择。虽然在编码的UI

我需要能够检查我的文本框是否可见。检查txtEntityName.Visible似乎不起作用,检查txtEntityName.Style[display]==none也不起作用,因为在html中,display:none似乎只适用于div本身。也就是说,div内部的文本框是不可见的,但它不包含该样式

是否有其他方法检查文本框是否可见?还是一种将txtEntityName的样式显式绑定到mydiv的方式?
我知道可以直接设置文本框的可见性,但我想在我走这条路之前看看是否有其他选择。

虽然在编码的UI测试中不可能直接检查控件的可见性,但我们可以通过很少的方法进行此检查

使用UITestControlNotVisibleException异常

使用自定义方法

1.使用UITestControlNotVisibleException异常

使用这种方法,我们可以确保给定的控件是否可见。通过这种方法,我们首先必须执行一些操作,例如设置控件值,以便通过编码的UI测试触发此异常。一旦触发此异常,则推送Assert.Fail'message'

<div id="mydiv" runat="server" class="mydivclass" style="display: none">
    <label class="medium" for="txtEntityName">Name of something:</label>
    <br />
    <asp:TextBox ID="txtEntityName" runat="server"></asp:TextBox><br />
</div>
但是使用这种方法是好的,因为有时不会触发相同的异常。 另一种方法是使用自定义方法

2.使用自定义方法

编码的UI测试提供了一个名为BoundingRectangle的属性,该属性给出控件在网页上的位置。若控件在网页上不可见,则控件的X和Y坐标设置为-1。 我们可以创建自定义扩展方法并直接在Testuicontrol上调用。比如说-

    try
    {

    }
    catch(UITestControlNotVisibleException exp)
    {
        Assert.Fail("textboxName
            control is invisible on web page.");
    }

在上面的代码中,有一个扩展方法称为IsVisible,它可以调用从HtmlControl基控件继承的任何类型的CodedUI控件。

虽然在编码的UI测试中不可能直接检查控件的可见性,但我们可以通过很少的方法来执行此检查

使用UITestControlNotVisibleException异常

使用自定义方法

1.使用UITestControlNotVisibleException异常

使用这种方法,我们可以确保给定的控件是否可见。通过这种方法,我们首先必须执行一些操作,例如设置控件值,以便通过编码的UI测试触发此异常。一旦触发此异常,则推送Assert.Fail'message'

<div id="mydiv" runat="server" class="mydivclass" style="display: none">
    <label class="medium" for="txtEntityName">Name of something:</label>
    <br />
    <asp:TextBox ID="txtEntityName" runat="server"></asp:TextBox><br />
</div>
但是使用这种方法是好的,因为有时不会触发相同的异常。 另一种方法是使用自定义方法

2.使用自定义方法

编码的UI测试提供了一个名为BoundingRectangle的属性,该属性给出控件在网页上的位置。若控件在网页上不可见,则控件的X和Y坐标设置为-1。 我们可以创建自定义扩展方法并直接在Testuicontrol上调用。比如说-

    try
    {

    }
    catch(UITestControlNotVisibleException exp)
    {
        Assert.Fail("textboxName
            control is invisible on web page.");
    }
在上面的代码中,有一个名为IsVisible的扩展方法,可以调用从HtmlControl基控件继承的任何类型的CodedUI控件。

您可以使用jQuery选择器。以下是您可以测试它的方法:

添加一个函数来测试可见性。添加一个输入以触发函数。您的标记可能如下所示:

     public static class CodedUITestControlsLibrary
    {
       public bool IsVisible(this HtmlControl HtmlControlToCheckForVisiblity)
       {
        var xCordinate =  HtmlControlToCheckForVisiblity.BoundingRectangle.X;
        var yCordinate = HtmlControlToCheckForVisiblity.BoundingRectangle.Y;

        return(xCordinate>-1 && yCordinate>-1);
       }
    }

    [TestMethod]
    public void MyTestMethod()
    {
        var HtmlDivControl = {find HtmlDiv Control};
        Assert.IsTrue(HtmlDivControl.IsVisible(),
        "Expected HtmlDiv Control is not visible.");
    }
免责声明:具有可见性:隐藏或不透明度:0的元素视为可见。来源:。

您可以使用jQuery选择器。以下是您可以测试它的方法:

添加一个函数来测试可见性。添加一个输入以触发函数。您的标记可能如下所示:

     public static class CodedUITestControlsLibrary
    {
       public bool IsVisible(this HtmlControl HtmlControlToCheckForVisiblity)
       {
        var xCordinate =  HtmlControlToCheckForVisiblity.BoundingRectangle.X;
        var yCordinate = HtmlControlToCheckForVisiblity.BoundingRectangle.Y;

        return(xCordinate>-1 && yCordinate>-1);
       }
    }

    [TestMethod]
    public void MyTestMethod()
    {
        var HtmlDivControl = {find HtmlDiv Control};
        Assert.IsTrue(HtmlDivControl.IsVisible(),
        "Expected HtmlDiv Control is not visible.");
    }

免责声明:具有可见性:隐藏或不透明度:0的元素视为可见。资料来源:。

虽然这个答案看起来信息丰富,但OP并没有提到编码的UI。我会在投票前等待OP的回应。不幸的是,这个解决方案比我需要的更复杂。这是一个很好的解决方案。我提到了这一点,因为你问了其他的方法。这没关系,但对一些人来说会有帮助。虽然这个答案看起来很有用,但OP并没有提到编码的UI。我会在投票前等待OP的回应。不幸的是,这个解决方案比我需要的更复杂。这是一个很好的解决方案。我提到了这一点,因为你问了其他的方法。这没关系,但它会对一些人有所帮助。最终,我决定在各个元素上设置一个标志。谢谢你的回复,但我决定不用了,没关系。如果你觉得答案有用的话,你仍然可以接受和/或投票。最终我决定在每个元素上设置一个标志。谢谢你的回复,但我决定不用了,没关系。如果你觉得答案有用,你仍然可以接受和/或投票表决。