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

Первый Онлайн ИНститут Тестировщиков
онлайн, начало 25 февраля
Тестирование REST API
онлайн, начало 25 февраля
Логи как инструмент тестировщика
онлайн, начало 25 февраля
Автоматизация функционального тестирования
онлайн, начало 22 февраля
Фотография

Статический WebDriver и PageFactory


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

#1 Raindrops

Raindrops

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

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

Отправлено 21 Июнь 2018 - 15:05

Структура выглядела примерно так:

"Фабрика"

 

public class Factory{
WebDriver webDriver;

public Factory(WebDriver driver){
webDriver = driver;
}
public LoginPage loginPage (){
return new LoginPage(webDriver);
    }
}

 

Фабричная страница

 

public class LoginPage {
private WebDriver webDriver;

public LoginPage(WebDriver driver){
webDriver = driver;
PageFactory.initElements(webDriver, this);
    }
}

 

 

И, собсна, сами тесты

 

public class Tests {
WebDriver webDriver;
Factory factory;

@Before
public void preCondition(){
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
webDriver = new ChromeDriver();
factory = new Factory(webDriver);;
}
@Test
public void test(){
factory.loginpage.element.click();
}

 

 

Но вдруг понадобилось использовать статический @Beforeclass и схема начала сыпаться. Своего ума хватило только на это:

Собсна фабричный класс:

 

public class Factory {
static WebDriver webDriver;
public Factory (WebDriver driver){
webDriver = driver;
}
public LoginPage loginPage(){
return new LoginPage(webDriver);
    }
}


public class LoginPage {
WebDriver webDriver;

public LoginPage(WebDriver driver) {
webDriver = driver;
PageFactory.initElements(TestClass.webDriver, this);
    }
}

 

 

И, собсна, NullPointException:

 

public class Test {
@BeforeClass
public static void setupClass() {
System.setProperty("chromedriver.exe");
webDriver = new ChromeDriver();
}
@Test
public void add(){
factory.loginPage().PasswordField.click();
    }
}

 

Помогите идиоту правильно инициализировать webDriver


  • 0

#2 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 225 сообщений
  • ФИО:Алексей

Отправлено 25 Июнь 2018 - 08:02

 

Структура выглядела примерно так:

"Фабрика"

 

public class Factory{
WebDriver webDriver;

public Factory(WebDriver driver){
webDriver = driver;
}
public LoginPage loginPage (){
return new LoginPage(webDriver);
    }
}

 

Фабричная страница

 

public class LoginPage {
private WebDriver webDriver;

public LoginPage(WebDriver driver){
webDriver = driver;
PageFactory.initElements(webDriver, this);
    }
}

 

 

И, собсна, сами тесты

 

public class Tests {
WebDriver webDriver;
Factory factory;

@Before
public void preCondition(){
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
webDriver = new ChromeDriver();
factory = new Factory(webDriver);;
}
@Test
public void test(){
factory.loginpage.element.click();
}

 

 

Но вдруг понадобилось использовать статический @Beforeclass и схема начала сыпаться. Своего ума хватило только на это:

Собсна фабричный класс:

 

public class Factory {
static WebDriver webDriver;
public Factory (WebDriver driver){
webDriver = driver;
}
public LoginPage loginPage(){
return new LoginPage(webDriver);
    }
}


public class LoginPage {
WebDriver webDriver;

public LoginPage(WebDriver driver) {
webDriver = driver;
PageFactory.initElements(TestClass.webDriver, this);
    }
}

 

 

И, собсна, NullPointException:

 

public class Test {
@BeforeClass
public static void setupClass() {
System.setProperty("chromedriver.exe");
webDriver = new ChromeDriver();
}
@Test
public void add(){
factory.loginPage().PasswordField.click();
    }
}

 

Помогите идиоту правильно инициализировать webDriver

 

Так а где factory инициализируется?


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн



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

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

Яндекс.Метрика
Реклама на портале