C# 检查控件可见性的其他方法?
我需要能够检查我的文本框是否可见。检查txtEntityName.Visible似乎不起作用,检查txtEntityName.Style[display]==none也不起作用,因为在html中,display:none似乎只适用于div本身。也就是说,div内部的文本框是不可见的,但它不包含该样式 是否有其他方法检查文本框是否可见?还是一种将txtEntityName的样式显式绑定到mydiv的方式?C# 检查控件可见性的其他方法?,c#,asp.net,webforms,C#,Asp.net,Webforms,我需要能够检查我的文本框是否可见。检查txtEntityName.Visible似乎不起作用,检查txtEntityName.Style[display]==none也不起作用,因为在html中,display:none似乎只适用于div本身。也就是说,div内部的文本框是不可见的,但它不包含该样式 是否有其他方法检查文本框是否可见?还是一种将txtEntityName的样式显式绑定到mydiv的方式? 我知道可以直接设置文本框的可见性,但我想在我走这条路之前看看是否有其他选择。虽然在编码的UI
我知道可以直接设置文本框的可见性,但我想在我走这条路之前看看是否有其他选择。虽然在编码的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的回应。不幸的是,这个解决方案比我需要的更复杂。这是一个很好的解决方案。我提到了这一点,因为你问了其他的方法。这没关系,但它会对一些人有所帮助。最终,我决定在各个元素上设置一个标志。谢谢你的回复,但我决定不用了,没关系。如果你觉得答案有用的话,你仍然可以接受和/或投票。最终我决定在每个元素上设置一个标志。谢谢你的回复,但我决定不用了,没关系。如果你觉得答案有用,你仍然可以接受和/或投票表决。