gpt4 book ai didi

c# - 编码的 UI 测试记录新测试覆盖 UIMap.Designer.cs 更改

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:51 26 4
gpt4 key购买 nike

我正在记录成功登录场景的编码 UI 测试。启动“编码的 UI 测试构建器”后,我记录了以下步骤。

  1. 启动exe
  2. 点击在页面上触发一些动画的表单 5-6 秒后,我可以选择“注册”或“登录”
  3. 我点击了“登录”(uILoginButton) 按钮并成功登录。

当我尝试回放此测试时,它在第 3 步崩溃,提示“找不到名为‘btnLogin’的 UI 元素”

所以我导航到 UIMap.Designer.cs 文件并在单击按钮之前添加了下面的代码行。

uILoginButton.WaitForControlExist();

我在“UIMap.Designer.cs”中记录的方法看起来像这样

/// <summary>
/// DoLogin
/// </summary>
public void DoLogin()
{
#region Variable Declarations
WpfButton uILoginButton= this.UIMPortPodGUIWindow.UIItemCustom7.UIContinueButton;
#endregion
uILoginButton.WaitForControlExist(100);

// Click 'Continue' button
Mouse.Click(uILoginButton, new Point(191, 42));
}

在此之后,我回放了这个测试,我很高兴看到一切正常。然后我开始录制第二个测试,完成录制后我意识到录制已经覆盖了我之前对 UIMap.Designer.cs 的更改,即下面的行丢失了

uILoginButton.WaitForControlExist();

我知道它应该放在“UIMap.cs”中,但不知道如何在两个类中部分声明 DoLogin() 方法。

添加自定义代码的最佳位置是哪里?

最佳答案

永远不要将代码放在 .Designer.cs 中,除非您不关心它会随机丢失。

在这种情况下,我通常会从自动生成的 DoLogin 中复制代码,并在 UIMap.cs(而不是 UIMap.Designer.cs)中创建我自己的方法具有自定义步骤。

public partial class UIMap
{
public void DoLoginWithWait()
{
#region Variable Declarations
WpfButton uILoginButton = this.UIMPortPodGUIWindow.UIItemCustom7.UIContinueButton;
#endregion
uILoginButton.WaitForControlExist(100);

// Click 'Continue' button
Mouse.Click(uILoginButton, new Point(191, 42));
}
}

程序生成的空 UIMap.cs 是针对您所处的确切情况。 UIMap.cs 不会在记录新步骤期间被覆盖,因此您可以安全地将您的代码放在那里。


编辑

在进一步探索之后,我发现有一个按钮可以使这更容易。在 UIMap.uitest 编辑器中点击 enter image description here按钮(或 Ctrl+Alt+C)这将从设计器中取出方法并将其放入 UIMap.cs 文件中,然后您可以安全地编辑该方法,而不必担心重建的设计器文件被覆盖你的改变。

关于c# - 编码的 UI 测试记录新测试覆盖 UIMap.Designer.cs 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28552937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com