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

Фотография

Не выполняются команды selenium внутри класса


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

#1 aceton

aceton

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

  • Members
  • Pip
  • 29 сообщений
  • ФИО:Павел

Отправлено 26 апреля 2012 - 11:45

Есть юнит-тест, в нем класс теста, который надо прогнать. В это классе у меня есть собственный класс, который имеет метод, в нем собственно и находятся команды selenium. Так вот, проблема в том, что эти команды не выполняются. Выполняется только те команды selenium, которые находятся непосредственно в классе теста. Я проверил тупым способом, просто вытащил условие из собственного класса наружу, и команда работает.
for (int second = 0;; second++) { //ожидание появления вкладки СОБЫТИЯ
     if (second >= 60) Assert.fail("timeout");
     try { if (selenium.isElementPresent("xpath=//div[contains(text(),'События')]"))  break; } catch (Exception e) {}
     Thread.sleep(500);
}
Команда
selenium.isElementPresent("xpath=//div[contains(text(),'События')]")
не работает внутри моего класса. В чем может быть проблема?
  • 0

#2 Vitalik_V

Vitalik_V

    Активный участник

  • Members
  • PipPip
  • 149 сообщений
  • ФИО:Виталий
  • Город:Харьков

Отправлено 26 апреля 2012 - 11:58

Есть юнит-тест, в нем класс теста, который надо прогнать. В это классе у меня есть собственный класс, который имеет метод, в нем собственно и находятся команды selenium. Так вот, проблема в том, что эти команды не выполняются. Выполняется только те команды selenium, которые находятся непосредственно в классе теста. Я проверил тупым способом, просто вытащил условие из собственного класса наружу, и команда работает.

for (int second = 0;; second++) { //ожидание появления вкладки СОБЫТИЯ
     if (second >= 60) Assert.fail("timeout");
     try { if (selenium.isElementPresent("xpath=//div[contains(text(),'События')]"))  break; } catch (Exception e) {}
     Thread.sleep(500);
}
Команда
selenium.isElementPresent("xpath=//div[contains(text(),'События')]")
не работает внутри моего класса. В чем может быть проблема?

Что значит Не работает? Как вы вызываете методы в Вашем классе?
  • 0

#3 aceton

aceton

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

  • Members
  • Pip
  • 29 сообщений
  • ФИО:Павел

Отправлено 26 апреля 2012 - 12:12

Что значит Не работает? Как вы вызываете методы в Вашем классе?

@Test
public void events() throws SQLException, InterruptedException, IOException {
	Event evnt = new Event();
	evnt.create(false, true, false, false);
}

  • 0

#4 Vitalik_V

Vitalik_V

    Активный участник

  • Members
  • PipPip
  • 149 сообщений
  • ФИО:Виталий
  • Город:Харьков

Отправлено 26 апреля 2012 - 12:17


Что значит Не работает? Как вы вызываете методы в Вашем классе?

@Test
public void events() throws SQLException, InterruptedException, IOException {
	Event evnt = new Event();
	evnt.create(false, true, false, false);
}

Объкт селениума обьявлен как static?
  • 0

#5 aceton

aceton

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

  • Members
  • Pip
  • 29 сообщений
  • ФИО:Павел

Отправлено 26 апреля 2012 - 12:23

Объкт селениума обьявлен как static?

В классе теста (нужен для остановки сервера) и в моем классе объявлен вот так:
private Selenium selenium;

  • 0

#6 Vitalik_V

Vitalik_V

    Активный участник

  • Members
  • PipPip
  • 149 сообщений
  • ФИО:Виталий
  • Город:Харьков

Отправлено 26 апреля 2012 - 12:34


Объкт селениума обьявлен как static?

В классе теста (нужен для остановки сервера) и в моем классе объявлен вот так:
private Selenium selenium;

Получается, что Вы в своем классе и классе с тестами, работаете с разными объектами типа Selenium. Скорре всего у вас isElementPresent падает с NullPointer, но Вы этого не видите, т.к завернули его в try/catch.

Уберите в своем классе это
private Selenium selenium;
- и в родительском проверте чтоб было -
protected static Selenium selenium;

  • 1

#7 aceton

aceton

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

  • Members
  • Pip
  • 29 сообщений
  • ФИО:Павел

Отправлено 26 апреля 2012 - 12:46

Уберите в своем классе это

private Selenium selenium;
- и в родительском проверте чтоб было -
protected static Selenium selenium;

Убрал
private Selenium selenium;
и теперь пишет, что неизвестная переменная selenium
  • 0

#8 aceton

aceton

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

  • Members
  • Pip
  • 29 сообщений
  • ФИО:Павел

Отправлено 26 апреля 2012 - 13:14

Все, я допер! Надо было в моем классе написать
Selenium selenium = Testcase.selenium;
где Testcase собственно и есть юнит тест.

РЕШЕНО! Спасибо тебе добрый человек!
  • 0


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

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