![](/img/trans.png)
[英]Error observed after copying code from UIMap.Designer.cs to UIMap.cs
[英]Coded UI Test recording new test overwrites UIMap.Designer.cs changes
我正在記錄編碼UI測試以成功登錄。 拉起“編碼的UI測試構建器”后,我記錄了以下步驟。
當我嘗試回放此測試時,它在第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
編輯器中,單擊 按鈕(或Ctrl + Alt + C),這會將方法從設計器中移出並將其放入
UIMap.cs
文件,然后您可以安全地編輯該方法,而不必擔心重建的設計器文件會覆蓋您的更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.