我在 .NET 中使用 C# 构建了一个网页,在 VS 2012 Premium 中工作。我记录了一些编码的 UI 测试。其中一个包含一个控件,该控件最初是隐藏的,但它从另一个保持特定值的控件变为可见和活动。当我播放它时,它失败并出现错误:无法对隐藏字段执行 setproperty。
有没有人有任何解决方法我如何录制或播放这个?
提前致谢。
我在 .NET 中使用 C# 构建了一个网页,在 VS 2012 Premium 中工作。我记录了一些编码的 UI 测试。其中一个包含一个控件,该控件最初是隐藏的,但它从另一个保持特定值的控件变为可见和活动。当我播放它时,它失败并出现错误:无法对隐藏字段执行 setproperty。
有没有人有任何解决方法我如何录制或播放这个?
提前致谢。
.Net 4.5 HiddenField.Value 属性中有一个属性。继承层次结构就像
System.Object
System.Web.UI.Control
System.Web.UI.WebControls.HiddenField
C# 语法将是
public virtual string Value { get; set;}
ASP.NET
<asp:HiddenField Value="String"/>
您可以使用 Value 属性来指定 HiddenField 控件的值。
这是一个常见的用例,无论该字段是隐藏还是禁用并等待另一个操作来更改状态。问题是确定字段发生了什么变化,它不存在吗?它没有屏幕点吗?它不可见吗?是不是没有启用?一旦确定可以继续
我会这样处理它:
var field = new HtmlTextArea();
if(field.WaitForControlReady(100)) //checks for control ready until waittime hit
{
field.Text="Insert text here";
}
else
{
Assert.Fail(String.Format( "Control not found in {0} seconds.", timeout*100));
}
请将此代码仅用作指南,它是在我喝咖啡之前用一只脚站立创建的 :)
尝试在条件下使用 control.BoundingRectangle.Height > 0 并查看控件是否出现。
或者
使用 control.EnsureClickable()
然后使用 control.GetProperty("Value") 获取值
谢谢, 卡提克 KK