Перейти к содержимому

hathi

Регистрация: 19 фев 2012
Offline Активность: 25 ноя 2014 10:41
-----

#111943 Шаблон фреймворка Webdriver+C#

Написано hathi 16 ноября 2012 - 11:05

В общем в чем задача. Ищу шаблон фреймворка Webdriver+C# с реализацией Page Object. гуглил, гуглил и чото не удалось найти. помогите плиз.
Спасибо



Изображение
Советую начать с создание драйвера:
public class Driver
    {
        private static IWebDriver driverInstance;

        private Driver()
        {
        }

        public static IWebDriver DriverInstance
        {
            get
            {
                if (driverInstance == null)
                {
                            var profile = new FirefoxProfile();
                            profile.EnableNativeEvents = false;
                            driverInstance = new FirefoxDriver(profile);
                            break;
                       
                }
                return driverInstance;
            }
        }

        public static void Close()
        {
            if (driverInstance != null)
            {
                driverInstance.Quit();
                driverInstance = null;
            }
        }
    }

Потом создай базовый тестовый класс от которого тесты будут наследоваться:
public class BaseTest
    {
        
        [TestFixtureSetUp]
        public static void Init()
        {
            XmlConfigurator.Configure();
            
            Driver.DriverInstance.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20)));
            Driver.DriverInstance.Manage().Window.Maximize();
        }

        [TestFixtureTearDown]
        public static void Close()
        {
            Driver.Close();
        }

        [SetUp]
        public void Open()
        {
            Driver.DriverInstance.Navigate().GoToUrl(ConfigurationManager.AppSettings["BaseUrl"]);
        }

        [TearDown]
        public void CleanUp()
        {
        
            Driver.DriverInstance.Manage().Cookies.DeleteAllCookies();
        }
    }
Потом разбить свой сайт на страницы, выделить в нем какие-то общие элементы которые причущны всем страницам(если такие есть то просто создать класс от которого потом наследоваться):
class OnePage
    {
       
        [FindsBy(How = How.XPath, Using = "//input[@alt='Submit Search']")]
        private IWebElement _searchSubmitButton;

               
        public SearchResultPage()
        {
            PageFactory.InitElements(Driver.DriverInstance, this);
        }

        public  bool Method()
        {
         return true;
        }

    }

Ну а потом самое простое тесты:
class Example : BaseTest
    {
        [Test]
        public void ExampleTest()
        {
            HomePage page = new HomePage(); //Открываем главную страницу
            SearchPage srch = page.GetSearchPage();//Открываем страницу поиска
            Assert.IsTrue(srch.Method();//Проверяем то чно надо и проверям рузультат
        }
    }

В папке Helper лежат Методы которые тебе будут необходимы много раз. Такие как ожидалки работы с строками или с элементами.
  • 2


#108620 можно ли экспортировать из SeleniumIDE в SeleniumWebDriver?

Написано hathi 13 августа 2012 - 20:46

- А вообще, какой-то опыт программирования есть?

да раньше немного программирповал на Pascal Delphi C++
довольного много писал авто скриптов на VBScript в QuickTest 9.0

Буду писать в основном тесты где программирования немного но оно обязательно будет, так что Selenium IDE не подойдет. Тестов будет средне, около 10 на проект за пол года.

Меня еще интересует, я пробую использовать Visual C# + Webdriver + Nunit, но Nunit генерирует совсем ничтожные отчеты об ошибках или я просто еще не научился им пользоваться.
Есть ли еще способы генерировать отчеты кроме Nunit?


Есть два способа получения Html отчета у NUnit.
1. Первый и очен лопатный но простой в реализции это XSLT трансформация. Сам NUnit пишет XML лог, при помощи небольших манипуляци можно получить довольно не плохой HTML отчетик
2. Второй, менее гуманный, но доже классный. Если ты заглянешь в папку с NUnit, то ты там заметишь папку C:\Program Files (x86)\NUnit 2.6.1\bin\Addins. Дивный NUnit поддерживает собсвенно писанные аддоны для репорта. Почитать можно тут: Event Listener Писать про это много не буду но если будут вопросы то могу немного помочь
  • 1


#108618 Неправильная работа Webdriver + IE

Написано hathi 13 августа 2012 - 20:30

Как мне кажется проблему решит просто бональный JS click:
Код на C#
public static void JSClick(IWebDriver element)
        {
            ((IJavaScriptExecutor) DriverFactory.Driver).ExecuteScript("arguments[0].click();", element);

        }

  • 1