2013-07-22 56 views
1

我試圖設置一個編碼的UI測試,以允許我在登錄時檢查錯誤消息。測試運行,但我努力讓assert工作。識別Visual Studio UI編碼測試中的元素

該回來的響應嵌套如下: -

<div class='ui-errors'> 
    <ul> 
     <li>Your password is invalid</li> 
    </ul> 
</div> 

什麼我需要設置,檢查該類別的DIV第一李毅中斷言?

回答

0

編碼用戶界面並不真正看DIV或UL等。編碼用戶界面查看顯示器上繪製的內容。我建議你使用Coded UI十字線工具來檢查錯誤消息,然後添加一個斷言來檢查消息。您也可以檢查屏幕的相同區域以進行測試,看看它們有何不同。

如果您手動編寫測試代碼而不是讓Coded UI爲您生成代碼,我建議創建一個沙箱項目並將斷言記錄到該代碼中。然後將生成的代碼中有用的想法複製到您自己的測試代碼中。

0

如果你可以得到一個需要斷言的頁面樣本,我可以爲你創建它,否則做AdrianHHH說的。

如果當您使用斷言工具,你不知道,你所得到的股票期權有不同的方式來斷言特定的控制,例如,你可以,如果它存在或斷言,如果內部文本等於等

2

編碼的用戶界面可以捕捉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")); 
     } 
0

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")); 
相關問題