如何使用FluentAutomation和MSTest组织测试和PageObject类(无法解析符号“I”错误)

时间:2015-08-12 22:55:39

标签: c# selenium selenium-webdriver fluentautomation

我正在尝试运行文档here中的示例。

我正在使用带有MSTest的Visual Studio,所以我稍微修改了一下代码,现在看起来像这样:

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using FluentAutomation;
using FluentAutomation.Interfaces;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

namespace UnitTestProject1
{
    public class BingSearchPage : PageObject
    {
        public BingSearchPage(FluentTest test)
            : base(test)
    {
        Url = "http://bing.com/";
        At = () => I.Expect.Exists(SearchInput); //Documentation says "At = () =>; I.Expect.Exists(SearchInput);" but I think that's a typo
    }

        public BingSearchResultsPage Search(string searchText)
        {
            I.Enter(searchText).In(SearchInput);
            I.Press("{ENTER}");
            return this.Switch();
        }

        private const string SearchInput = "input[title='Enter your search term']";
    }

    public class BingSearchResultsPage : PageObject
    {
        public BingSearchResultsPage(FluentTest test)
            : base(test)
        {
            At = () => I.Expect.Exists(SearchResultsContainer);
        }

        public BingSearchResultsPage FindResultUrl(string url)
        {
            I.Expect.Exists(string.Format(ResultUrlLink, url));
            return this;
        }

        private const string SearchResultsContainer = "#b_results";
        private const string ResultUrlLink = "a[href='{0}']";
    }

    [TestClass]
    public class UnitTest1 : FluentTest
    {
        public UnitTest1()
        {
            SeleniumWebDriver.Bootstrap(SeleniumWebDriver.Browser.Chrome);
        }

        [TestMethod]
        public void SearchForFluentAutomation()
        {
            new BingSearchPage(this)
                .Go()
                .Search("FluentAutomation")
                .FindResultUrl("http://fluent.stirno.com/blog/FluentAutomation-scriptcs/");
        }
    }
}

我收到的错误如下:

  

错误1'FluentAutomation.PageObject'不包含构造函数   需要1个参数C:\ Users \ Shitij \ Documents \ Visual Studio   2013 \ Projects \ UnitTestProject1 \ UnitTestProject1 \ UnitTest1.cs 13 15 UnitTestProject1

     

错误2当前名称“I”不存在   上下文C:\ Users \ Shitij \ Documents \ Visual Studio   2013 \ Projects \ UnitTestProject1 \ UnitTestProject1 \ UnitTest1.cs 16 20 UnitTestProject1

     

错误3'UnitTestProject1.BingSearchPage'不包含   'Switch'的定义,没有扩展方法'Switch'接受a   类型'UnitTestProject1.BingSearchPage'的第一个参数可以是   发现(你错过了使用指令或程序集   参考?)C:\ Users \ Shitij \ Documents \ Visual Studio   2013 \ Projects \ UnitTestProject1 \ UnitTestProject1 \ UnitTest1.cs 23 25 UnitTestProject1

感觉就像一个愚蠢的问题,但我坚持下去。知道我做错了什么吗?属性“I”似乎是在FluentTest类中,那么文档如何在从PageObject派生的类中使用它?

1 个答案:

答案 0 :(得分:0)

网站atm上的文档存在问题。真的需要修复它。缺少通用位!

PageObject更改为PageObject<BingSearchResultsPage>I应该解决。