0

我正在尝试在 Microsoft Visual Studio 2012 中在购买会员资格的编码 UI 中创建一个自动化测试,然后在显示结帐页面后单击继续按钮。我记录的一种方法是在结帐页面后单击继续按钮。但是,该按钮并不总是显示,因此我需要有条件地检查该按钮是否可见。

openBrowser();
goToTestPage();
purchaseMembership()
clickCheckout();

我尝试在上述方法之后创建一个条件检查,如下所示:

if (this.UIMap.clickContinueButton !=null) 
{
    clickContinueButton();
}

我也尝试创建一个断言,但失败了。

4

2 回答 2

1

控件的几个属性可能会提供您需要的内容,确切的方法或方法组合取决于正在测试的网站或应用程序的编写方式。

尝试该方法访问的控件的Exists或属性。您可以通过 UI Map 编辑器找到控件,或者右键单击方法调用并选择Go To DefinitionEnabledthis.UIMap.clickContinueButton()

有时控件存在但不可见;例如,下拉列表中的条目。这些不可见的条目可以被检测到,因为它们的Left和/或Top属性是负面的。,BoundingRectangle和属性HeightWidth可以使用。

假设方法中的控件“单击”是uIIacknowledgeContinueButton另一种方法,则使用以下代码:

UITestControlCollection controls
    = uIIacknowledgeContinueButton.FindMatchingControls();
if ( controls.Count == 0 ) {
    // The button is not present.
} else if ( controls.Count == 1) {
    // The button is present.
} else {
    // More than one button has been found.
}
于 2013-07-11T08:35:57.563 回答
0

我终于想通了:)

由于我无法调用 clickContinueButton,我打开了 .uitest 文件(XML 版本),我在左侧部分的 UI 操作中找到了该方法。然后我展开 clickContinueButton 方法并找到实际的“点击”步骤。右键单击单击步骤并选择属性,在“通用属性”对话框中,将“出错时继续”更改为“真”并保存。

现在应该为实际方法更新designer.cs。打开designer.cs类并找到clickContinueButton,一旦找到它就复制区域变量,例如:

        #region Variable Declarations
        HtmlInputButton uIIacknowledgeContinueButton = this.UILoopWindowsIntWindow.UILoopDocument1.UIIacknowledgeContinueButton;
        #endregion

下一步是打开 UIMap.cs 文件并创建一个新的布尔方法,如果上述变量不为空,则返回 true,例如:

 public boolean isButtonDisplayed {

        #region Variable Declarations
        HtmlInputButton uIIacknowledgeContinueButton = this.UILoopWindowsIntWindow.UILoopDocument1.UIIacknowledgeContinueButton;
        #endregion

 if (uIIacknowledgeContinueButton != null) {

 return true;
 } else {

 return false;
 }

现在最后一步是打开 codedUItest.cs 找到 clickContinue() 方法所在的位置并添加以下条件语句:

 if (isButtonDisplayed() != false) {
 clickContinueButton();
 }

希望这可以帮助!如果您有任何问题,请告诉我。

于 2013-07-11T22:28:58.703 回答