2015-05-11 3 views
0

Вот сценарий, который я тестирую в веб-приложении, и первое, что мне нужно сделать, это написать тест, который проверяет наличие «report no.x» на каждой странице. Примечание: значение X изменяется со страницы на страницу, как на домашней странице, на 1 странице на другой странице равно 3 и т. Д. Есть ли способ, которым я могу это сделать, уменьшая количество строк кода. Else для каждой страницы, на которую я нахожусь, может быть решением, где мне, возможно, придется писать If else только один раз, и этот блок будет выполняться каждый раз, когда открывается новая страница.Проверка наличия элемента 1 на каждой странице

ответ

0

Вы можете выполнить желаемое поведение посредством комбинации между шаблоном объекта страницы и базовым классом.

public class BingMainPage 
{ 
    private readonly IWebDriver driver; 
    private readonly string url = @"http://www.bing.com/"; 

    public BingMainPage(IWebDriver browser) 
    { 
     this.driver = browser; 
     PageFactory.InitElements(browser, this); 
    } 

    [FindsBy(How = How.Id, Using = "sb_form_q")] 
    public IWebElement SearchBox { get; set; } 

    [FindsBy(How = How.Id, Using = "sb_form_go")] 
    public IWebElement GoButton { get; set; } 

    [FindsBy(How = How.Id, Using = "b_tween")] 
    public IWebElement ResultsCountDiv { get; set; } 

    public void Navigate() 
    { 
     this.driver.Navigate().GoToUrl(this.url);    
    } 

    public void Search(string textToType) 
    { 
     this.SearchBox.Clear(); 
     this.SearchBox.SendKeys(textToType); 
     this.GoButton.Click(); 
    } 

    public void ValidateResultsCount(string expectedCount) 
    { 
     Assert.IsTrue(this.ResultsCountDiv.Text.Contains(expectedCount), "The results DIV doesn't contains the specified text."); 
    } 
} 

Если это один из ваших страниц, вы можете создать базовый класс для вывода. Там вы можете иметь свойство значения X и свой метод ожидания. Детские классы должны выводиться из этого класса и передавать точное значение X. Таким образом, вы можете повторно использовать логику во всех своих тестах.

Вы можете найти более подробные примеры здесь: http://automatetheplanet.com/page-object-pattern/

+0

Sure человеко-спасибо большое за Hittin я постараюсь это –

+0

Спасибо много Антон. Почему мне это не приходило в голову: p –

+0

Я рад слышать, что это работает для вас. Если это решает вашу проблему. Можете ли вы оценить и закрыть вопрос, потому что он все еще находится в неотвеченной очереди? –

Смежные вопросы