我試圖設置一個編碼的UI測試,以允許我在登錄時檢查錯誤消息。測試運行,但我努力讓assert工作。識別Visual Studio UI編碼測試中的元素
該回來的響應嵌套如下: -
<div class='ui-errors'>
<ul>
<li>Your password is invalid</li>
</ul>
</div>
什麼我需要設置,檢查該類別的DIV第一李毅中斷言?
我試圖設置一個編碼的UI測試,以允許我在登錄時檢查錯誤消息。測試運行,但我努力讓assert工作。識別Visual Studio UI編碼測試中的元素
該回來的響應嵌套如下: -
<div class='ui-errors'>
<ul>
<li>Your password is invalid</li>
</ul>
</div>
什麼我需要設置,檢查該類別的DIV第一李毅中斷言?
編碼用戶界面並不真正看DIV或UL等。編碼用戶界面查看顯示器上繪製的內容。我建議你使用Coded UI十字線工具來檢查錯誤消息,然後添加一個斷言來檢查消息。您也可以檢查屏幕的相同區域以進行測試,看看它們有何不同。
如果您手動編寫測試代碼而不是讓Coded UI爲您生成代碼,我建議創建一個沙箱項目並將斷言記錄到該代碼中。然後將生成的代碼中有用的想法複製到您自己的測試代碼中。
如果你可以得到一個需要斷言的頁面樣本,我可以爲你創建它,否則做AdrianHHH說的。
如果當您使用斷言工具,你不知道,你所得到的股票期權有不同的方式來斷言特定的控制,例如,你可以,如果它存在或斷言,如果內部文本等於等
編碼的用戶界面可以捕捉DIV。在下面的代碼中,我用你提供的例子創建了一個自定義的DIV對象。 AdrianHHH的回答肯定會讓你知道你需要插入到我的例子中。
var error = new HtmlDiv(new Parent(RootParentWindow));
error.SearchProperties.Add("Class", "ui-errors");
var errors = error.FindMatchingControls();
foreach (var item in errors)
{
Assert.IsTrue(item.GetProperty("InnerText").ToString().Contains("Your password is invalid"));
}
yonitdm答案將解決你的問題,但按你的話說,「在該類的DIV 第一禮」試試下面。
// Find Error Div
var errorDiv = new HtmlDiv(new Parent(RootParentWindow));
errorDiv.SearchProperties.Add("Class", "ui-errors");
errorDiv.Find();
// Get UL - First item in div
var errorUL = errorDiv.GetChildren().First(); // or GetChildren()[0]
// Get all LIs and take first item
var firstLI = errorDiv.GetChildren().First(); // or GetChildren()[0]
Assert.IsTrue(firstLI.GetProperty("InnerText").ToString().Contains("Your password is invalid"));