2011-08-08 37 views
0

我正在評估幾個不同的測試自動化框架。我真正喜歡的關於WatiN的一件事是從測試中抽象出頁面代碼的頁面模型。WebAii框架是否以WatiN的方式支持頁面類結構?

華廷示例登錄頁面:

public class AVLoginPage : Page 
{ 
    public TextField Email 
    { 
     get { return Document.TextField(Find.ById("UserLogin_UserName")); } 
    } 

    public TextField Password 
    { 
     get { return Document.TextField(Find.ById("UserLogin_Password")); } 
    } 

    public Button LoginBtn 
    { 
     get { return Document.Button(Find.ById("UserLogin_LoginButton")); } 
    } 

    /// <summary> 
    /// Enters the email and loging in to the corresponding boxes and clicks the login button. 
    /// </summary> 
    /// <param name="email"></param> 
    /// <param name="password"></param> 
    public void Login(string email, string password) 
    { 
     Email.TypeText(email); 
     Password.TypeText(password); 
     LoginBtn.Click(); 
    } 
} 

我可以做這樣的事情與WebAii?

回答

1

因此,這裏是我已經開始使用WebAii庫採取的方法:

我的測試代碼如下所示:

[TestMethod] 
public void Login_inValid_Combination_WebAii() 
{ 
    Manager.LaunchNewBrowser(BrowserType.Safari); 
    ActiveBrowser.NavigateTo(baseUrl + "login.aspx"); 

    LoginPage.Login("[email protected]", "123421343414",ActiveBrowser); 
    string expectedMsg = "Email address or password is incorrect."; 
    string actualMsg = LoginPage.GetError(ActiveBrowser); 

    Assert.IsTrue(actualMsg.Contains(expectedMsg)); 


} 

然後我有一個庫:

using ArtOfTest.WebAii.Controls.HtmlControls; 
using ArtOfTest.WebAii.Controls.HtmlControls.HtmlAsserts; 
using ArtOfTest.WebAii.Core; 
using ArtOfTest.WebAii.ObjectModel; 
using ArtOfTest.WebAii.TestAttributes; 
using ArtOfTest.WebAii.TestTemplates; 
using ArtOfTest.WebAii.Win32.Dialogs; 

using ArtOfTest.WebAii.Silverlight; 
using ArtOfTest.WebAii.Silverlight.UI; 

namespace WebAIIPageLibrary 
{ 
    public class LoginPage : BaseTest 
    { 

     public static void Login(string email, string password, Browser passedBrowser) 
     { 

      passedBrowser.Find.ById<HtmlInputText>("UserLogin_UserName").Text = email; 
      passedBrowser.Find.ById<HtmlInputPassword>("UserLogin_Password").Text = password; 
      passedBrowser.Find.ById<HtmlInputSubmit>("UserLogin_LoginButton").Click(); 
     } 

     public static string GetError(Browser passedBrowser) 
     { 
      ReadOnlyCollection<HtmlDiv> div = passedBrowser.Find.AllByTagName<HtmlDiv>("div"); 
      string errorMsg = ""; 
      foreach(HtmlDiv s in div) 
      { 
       if (s.CssClass == "error") 
       { 
        errorMsg = s.InnerText; 
        break; 
       } 
      } 

      return errorMsg;   
     } 

     public static string GetDashboardTitle(Browser passedBrowser) 
     { 
      return passedBrowser.Window.Caption; 
     } 
    } 
} 

這允許我從測試代碼本身抽象頁面上的操作。

0

Telerik測試框架(以前稱爲WebAii)不包含任何錄製功能。要按照我認爲您需要的方式獲取完整錄製和自動頁面類抽象化,您需要購買Test Studio(或Ultimate Collection附帶的Test Studio Express)許可證。

如果您想手工編寫自己的抽象代碼,歡迎您在Find Expression documentation之後執行此操作。此外(目前尚未記錄,但我們正在研究它)是可以與Find Expressions一起使用的[Find()]屬性。該屬性取代old FindParam attribute。 FindParam屬性僅適用於HTML元素,而新的Find屬性適用於HTML和XAML元素。

+0

我其實並沒有問及錄音功能。謝謝。我確實弄清楚了一些事情。 –

相關問題