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

Фотография

selenium + phpunit тесты


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

#1 JIu4

JIu4

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

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

Отправлено 24 августа 2011 - 04:51

Доброго времени суток.
Столкнулся с проблемой в тестах.
При нажатии на кнопку "Удалить" появляется окно подтверждения ("cancel" "ok")
Причём выделена уже кнопка "ok".
Для прохождения этого рубежа нашёл несколько решений:
1) программно произвести нажатие кнопки "enter"
2)с помощью определённой функции осуществить нажатие на "ок"
сама функция:
public function clickDellCategory($value)
	{
	    $count = $this->_browser->getXpathCount($this->_config->row);
            $Row=0;
            if($count>0)
        {
            for($i=1; $i<$count+1; $i++)
            {
                $Row = trim($this->_browser->getText($this->_config->row . '[' . $i . ']/td[1]' ));
                if($value==$Row)
                {
               
                    $this->_browser->click($this->_config->row . '[' . $i . ']/td[3]/a'); //непосредственно само нажатие
                    break;
                }
            }
        }
	   
	   return new Page_AdminListCategoryPage($this->_browser); 
	}

функция немного грамоздка, но это необходимо для проверки, имеется ли нужная строчка в списке.

Если выразиться по проще, то нужно после строчки:
$this->_browser->click($this->_config->row . '[' . $i . ']/td[3]/a');
произвести нажатие на "ок" в окне проверки, или произвести нажатие клавиши "enter".
Буду очень благодарен, если подскажете как это сделать или подтолкнёте в нужное русло.
P.S. ОС Linux. Тесты проходят в FireFox.
  • 0

#2 Jenka156

Jenka156

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

  • Members
  • PipPip
  • 137 сообщений
  • ФИО:Женя


Отправлено 24 августа 2011 - 05:48

а метод getConfirmation() не подходит?
  • 0

#3 JIu4

JIu4

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

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

Отправлено 24 августа 2011 - 06:15

Пока что не получается. Всё равно тест зависает на окне подтверждения удаления.

$this->_browser->chooseOkOnNextConfirmation();
$this->_browser->click($this->_config->row . '[' . $i . ']/td[3]/a');
$this->sleep(2);
$this->_browser->getConfirmation();

и

$this->_browser->click($this->_config->row . '[' . $i . ']/td[3]/a');
$this->sleep(2);
$this->_browser->getConfirmation();
не работает к сожалению.

если самому нажать подтверждение, то тест падает с ошибкой, которая ссылается на строчку с getConfirmation()


[exec] PHPUnit_Framework_Exception: Response from Selenium RC server for testComplete().
[exec] ERROR: There were no confirmations.
  • 0

#4 Jenka156

Jenka156

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

  • Members
  • PipPip
  • 137 сообщений
  • ФИО:Женя


Отправлено 24 августа 2011 - 06:32

а это окно стандартное сообщение браузера или написанное разработчиками? у меня была похожая проблема. если стандартное, то достаточно после нажатия на "Удалить" прописать метод getConfirmation(). а если это окно, которое написано разработчиками, то тогда надо на него переключиться и после этого прописать нажатие на кнопку "ОК"
  • 0

#5 JIu4

JIu4

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

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

Отправлено 24 августа 2011 - 06:47

Будь любезен, подскажи какими методами пользоваться?
Раньше обходился прогонкой тестов в одном окне.
  • 0

#6 JIu4

JIu4

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

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

Отправлено 24 августа 2011 - 06:54

Сама ссылка выглядит таким образом.

<a onclick="return confirm('Вы действительно хотите удалить?')" href="(ссылка)">удалить</a>

  • 0

#7 Jenka156

Jenka156

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

  • Members
  • PipPip
  • 137 сообщений
  • ФИО:Женя


Отправлено 24 августа 2011 - 07:00

вот покопалась на форуме. может эта тема поможет? http://software-test...um/topic/14964/

и вот еще http://swtesting.liv...l.com/5932.html
  • 0

#8 ekulgavaya

ekulgavaya

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

  • Members
  • Pip
  • 50 сообщений
  • ФИО:Елена
  • Город:Minsk, Belarus


Отправлено 24 августа 2011 - 09:35

Сама ссылка выглядит таким образом.

<a onclick="return confirm('Вы действительно хотите удалить?')" href="(ссылка)">удалить</a>


Это стандартный confirmation -> методы для обработки confirmation-ов должны работать.
А в чем собственно у вас проблема? Вы не видите это окошко при прогонке тестов? Тест валится на этой строчке?

В ИДЕ есть куча методов для работы с такими штуками, например:
waitForConfirmation,
assertConfirmation,
chooseCancelOnNextConfirmation
chooseOkOnNextConfirmation

Уверена, что найдете аналоги в своем языке)
  • 0
In God we trust, the rest we test.

#9 JIu4

JIu4

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

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

Отправлено 25 августа 2011 - 03:11

А в чем собственно у вас проблема? Вы не видите это окошко при прогонке тестов? Тест валится на этой строчке?


Проблема заключается в том, что после нажатия "удалить" появляется окошко подтверждения ("cancel" "ok"). И тест дальше не идёт.
Т.е. тест останавливается на строчке клика по кнопке "удалить", и ждёт пока выполниться действие на окне подтверждения.
Если самому нажать на "enter" или кликнуть по "ok" то тогда начинают выполняться строчки, которые идут после "click"(нажатия на кнопку "удалить")

Не могу решить проблему с автоматическим подтверждение удаления.
  • 0


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

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