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

Фотография

Java+TestNG+WebDriver:Как обернуть код в тесте, чтобы не писать его м


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 dim2016

dim2016

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 16 апреля 2017 - 14:23

Доброго времени суток!вопрос: как код который повторяется много раз ,обернуть и потом вызывать метод(или как-то по другому сделать) чтобы другая часть кода продолжала работать?

  WebDriver driver = new FirefoxDriver();///////////
        driver.manage().window().maximize();//////
        driver.get("http://www.shop.ru/");////////
        WebElement searchField = driver.findElement(By.cssSelector("#w-search-form-input"));
        searchField.clear();
        searchField.sendKeys("pocket book");
        driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
        WebElement searchButton = driver.findElement(By.cssSelector("button.btn"));
         searchButton.click();
         driver.quit();

Пример три строки где комментарии,пример небольшой конечно ,но если повторяющихся строк будет 30 и тестов 30 было много повторяющегося кода.


  • 0

#2 cpmBugHunter

cpmBugHunter

    Новый участник

  • Members
  • Pip
  • 45 сообщений
  • ФИО:Евгений
  • Город:Ростов-на-Дону


Отправлено 17 апреля 2017 - 07:37

Здравствуйте! Если я правильно понял, то вы хотите заменить 3 строки одной. Тогда можно сделать примерно так:

public void openPage(String url) {
    WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get(url);
}

//Вызов метода
openPage("http://www.shop.ru");

  • 1

#3 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 17 апреля 2017 - 13:31

WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();

Я бы перенесла в getDriver() с небольшой модицикацией:

public static WebDriver getDriver() {
     if (driver == null) driver = new FirefoxDriver();
     driver.manage().window().maximize();
     return driver;
}

Сама переменная driver - static.

Тогда помимо кода - будет экономиться ещё и время на запуск нового браузера каждый раз.

Только тут нужно будет самостоятельно следить за готовностью системы (к примеру, логаут делать, если следующий тест опять логин будет проверять).


  • 1

#4 dim2016

dim2016

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 18 апреля 2017 - 05:47

Благодарю за ответы!


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных