0

我正在开发一个自动化测试应用程序来测试一个 Web 应用程序。在这里,我无法找到由 Web 应用程序代码动态创建的控件。它们的属性不断变化。

示例:某些控件在第一次执行时不会出现,但会在下次执行时出现。Web 应用程序还将创建一个 XML 文件来存储网页中所有控件的信息。

4

2 回答 2

1

我也很久以前在 CodedUI 中遇到过这个问题,我通过编辑控件的属性解决了这个问题。我建议你,

(1) 转到要定位的动态控件的属性,

(2) 你会发现propertyName, PropertyExpressionOperator & PropertyValue

*(example : propertyName = id,
PropertyExpressionOperator = equals,
PropertyValue = button12)*

(3) 现在将PropertyExpressionOperator即equals )改为“contains”,并去掉PropertyValue中不断变化的值(即button12 -> button

(4) 所以属性看起来像

*(example : propertyName = id,
PropertyExpressionOperator = contains,
PropertyValue = button)*

(5) 现在您可以找到它了。

相信它可以帮助你。

于 2014-07-30T09:44:08.440 回答
1

屠宏。

我使用了可以做到这一点的CUITe(编码 UI 测试增强框架) 。

例如,变更集21564 在 Sample_CUITeTestProject\BrowserWindowTests.cs 中有一个示例单元测试,如下所示:

[TestMethod]
[WorkItem(608)]
public void GenericGet_WithHtmlControls_GetsControlsDynamically()
{
    //Arrange
    CUITe_BrowserWindow bWin = CUITe_BrowserWindow.Launch("http://mail.google.com", "Gmail: Email from Google");

    //Act
    bWin.Get<CUITe_HtmlEdit>("Id=Email").SetText("xyz@gmail.com");
    bWin.Get<CUITe_HtmlPassword>("Id=Password").SetText("MyPa$$Word");
    bWin.Get<CUITe_HtmlInputButton>("Id=signIn").Click();
    bWin.Close();
}
于 2013-01-17T02:36:21.163 回答