2014-01-06 4 views
2

Чтобы избежать зависимостей и облегчить параллельное выполнение между функциями, я хочу запускать каждую функцию в своем собственном экземпляре браузера.Как запустить каждую функцию огурца в новом экземпляре браузера?

В настоящее время у меня есть эта настройка. По достоинству оцените направления.

@CucumberOptions(..., features = "/features/"...) 

public class RunCukes { 
    public static WebDriver driver = new FirefoxDriver(); 
} 

Мои черты ...

Feature: Feature-1 
    Scenario: A Scenario 

    Give I login as "<user>" 
    ... 

Feature: Feature-2 
    Scenario: A Scenario 

    Give I login as "<user>" 

Шаг definitons ...

@Given("^I login as \"([^\"]*)\"$") 
public void I_login_as(String user) throws Throwable { 
    try { 
    driver.get("url"); 
    } catch (Exception e) { 
    //do something (e.g.take screenshot) and close browser 
    } 
} 
    ... 

ответ

-1

Вы должны инициализировать WebDriver для каждой функции, предпочтительно в @Before

@cucumber.annotation.Before; 
public void init() { 
    driver = new FirefoxDriver(); 
} 

@cucumber.annotation.After; 
public void close() { 
    driver.quit(); 
} 
+1

Это бросит проблема при повторном использовании шага «Дайте мне войти как« », потому что переменная' driver' будет неопределенной, не так ли? – Bala

+0

Вы также используете так называемые «тегированные крючки», которые позволят вам создавать пользовательские '@ Before' и' @ After' - http://zsoltfabok.com/blog/2012/09/cucumber-jvm-hooks/ –

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

  • Нет связанных вопросов^_^