首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebAii框架是否支持像WatiN那样的页面类结构?

WebAii框架是否支持像WatiN那样的页面类结构?
EN

Stack Overflow用户
提问于 2011-08-09 03:00:13
回答 2查看 1K关注 0票数 0

我正在评估几个不同的自动化测试框架。我真正喜欢WatiN的一点是它的页面模型,它可以从测试中抽象出页面代码。

登录页面的Watin示例:

代码语言:javascript
复制
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做这样的事情吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-12 00:15:24

下面是我开始使用WebAii库的方法:

我的测试代码如下所示:

代码语言:javascript
复制
[TestMethod]
public void Login_inValid_Combination_WebAii()
{
    Manager.LaunchNewBrowser(BrowserType.Safari);
    ActiveBrowser.NavigateTo(baseUrl + "login.aspx");

    LoginPage.Login("test@roger.com", "123421343414",ActiveBrowser);
    string expectedMsg = "Email address or password is incorrect.";
    string actualMsg  = LoginPage.GetError(ActiveBrowser);

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


}

然后我就有了一个库:

代码语言:javascript
复制
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;
        }
    }
}

这允许我从测试代码本身中抽象出页面上的操作。

票数 1
EN

Stack Overflow用户

发布于 2011-08-09 06:23:20

Telerik测试框架(以前称为WebAii)不包括任何录制功能。要获得完整的录制和自动页面类抽象,我认为你需要购买Test Studio (或终极收藏附带的Test Studio Express )的许可证。

如果你想手工编写你自己的抽象代码,欢迎你按照Find Expression documentation来做。另外(目前没有文档,但我们正在努力)是Find()属性,您可以将其与Find表达式一起使用。此属性将替换old FindParam attribute。FindParam属性仅适用于HTML元素,而新的Find属性适用于HTML和XAML元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6987181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档