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

Фотография

Confirmation Messages


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

#1 almarka

almarka

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

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

Отправлено 16 декабря 2010 - 15:34

Ситуация такая: Есть линка, после нажатия которой выскакивает конфирмешн меседж:
Вы уверены, что хотите уйти с этой страницы?
Вы действительно хотите прервать создание объявления?
Нажмите «OK» для продолжения, или «Отмена» чтобы остаться на текущей странице.

Конфирмейшн меседжи всегда обрабатывала вот этим кодом (после нажатия линки) и в принципе проблем не было:
<tr>
<td>waitForCondition</td>
<td>selenium.isConfirmationPresent()</td>
<td>10000</td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>МЕСЕДЖ</td>
<td></td>
</tr>

Сейчас же в режиме запуска скрипта, Selenium IDE доходит до этого вейтфоркондишн и засыпает... Ни одного ерора, ничего... Кроме, как ПопАпа с этим меседжем на странице...
Такое ощущение, что он его вообще не распознает...

Может, я что-то не так делаю... Подскажите, плз
  • 0

#2 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 16 декабря 2010 - 15:59

Переместил тему в специализированный форум
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#3 OVA

OVA

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

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 17 декабря 2010 - 05:20

Попробуйте chooseCancelOnNextConfirmation, например. Аналогично для ОК.
Только ставить это надо строго до выполнения действия которое приведет к появлению конфирмов.
  • 0

#4 almarka

almarka

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

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

Отправлено 17 декабря 2010 - 07:05

Пасиб за ответ. Неа, не получается....
Selenium IDE проходит степ успешно с ChooseOKOnNextConfirmation, кликает успешно по линке и я вижу все этот же конфирмейшн... Не хавает он его и все... Я уже начинаю думать, может это и не конфирмейшн совсем ... Или может такого типа конфирмейшены Selenium IDE не поддерживает в принципе... Но меседж этот не на онлоад ивенте, а появляется каждый раз когда выходишь из страницы, то есть типа на анонлоад ивенте....
  • 0

#5 OVA

OVA

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

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 17 декабря 2010 - 07:19

Вот в этой теме подобные вещи разбирали: http://software-test...9517#entry79517

Посмотрите там, возможно ответы там уже есть)
  • 0

#6 KaZiK

KaZiK

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Казимирчик Владимир

Отправлено 17 декабря 2010 - 08:34

Если появляется окно Confirmation, то его можно обойти с помощью ChooseOkOnNextConfirmation(ChooseCancelOnNextConfirmation). Только не забудьте после клика(или перед, точно не помню) добавить GetConfirmation. Тогда вы сначала задаете действие при запросе и потом его ждете. Как только появится confirmation, селениум тиснет или Ок или Cancel.
  • 0

#7 skalolaz

skalolaz

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

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Andrey

Отправлено 20 декабря 2010 - 06:30

Если появляется окно Confirmation, то его можно обойти с помощью ChooseOkOnNextConfirmation(ChooseCancelOnNextConfirmation). Только не забудьте после клика(или перед, точно не помню) добавить GetConfirmation. Тогда вы сначала задаете действие при запросе и потом его ждете. Как только появится confirmation, селениум тиснет или Ок или Cancel.

можно пример?
  • 0

#8 KaZiK

KaZiK

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Казимирчик Владимир

Отправлено 20 декабря 2010 - 09:27


Если появляется окно Confirmation, то его можно обойти с помощью ChooseOkOnNextConfirmation(ChooseCancelOnNextConfirmation). Только не забудьте после клика(или перед, точно не помню) добавить GetConfirmation. Тогда вы сначала задаете действие при запросе и потом его ждете. Как только появится confirmation, селениум тиснет или Ок или Cancel.

можно пример?


Допустим у вас есть уже код теста. При запуске в каком-то месте у вас возникает окно confirmation. Допустим, после нажатия на линк для перехода на другую страницу(например, если тестить гмейл, то такая ситуация возникает если вы удалили письмо и сразу же переходите из инбокса в отправленные. или когда из архива удаляете письмо). Так вотю перед кликом добавьте ChooseOkOnNextConfirmation(), а после GetConfirmation().

Если не изменяет память - все отработает на ура.
  • 0

#9 skalolaz

skalolaz

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

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Andrey

Отправлено 20 декабря 2010 - 10:16



Если появляется окно Confirmation, то его можно обойти с помощью ChooseOkOnNextConfirmation(ChooseCancelOnNextConfirmation). Только не забудьте после клика(или перед, точно не помню) добавить GetConfirmation. Тогда вы сначала задаете действие при запросе и потом его ждете. Как только появится confirmation, селениум тиснет или Ок или Cancel.

можно пример?


Допустим у вас есть уже код теста. При запуске в каком-то месте у вас возникает окно confirmation. Допустим, после нажатия на линк для перехода на другую страницу(например, если тестить гмейл, то такая ситуация возникает если вы удалили письмо и сразу же переходите из инбокса в отправленные. или когда из архива удаляете письмо). Так вотю перед кликом добавьте ChooseOkOnNextConfirmation(), а после GetConfirmation().

Если не изменяет память - все отработает на ура.

у меня к сожалению не работает...
код где вызывается окно конфирмейшн

$this->selenium->select("SELL_CA_TYPE", "label=FIRST, FIRST");
$this->assertEquals("Создание/Изменение запуска", $this->selenium->getTitle());
$this->selenium->select("P13_CA_RUN_TPN_TYPE", "label=РНН");
$this->selenium->select("P13_PERIOD_START_MONTH", "label=Январь");
$this->selenium->select("P13_PERIOD_START_YEAR", "label=2009 год");
$this->selenium->select("P13_PERIOD_END_MONTH", "label=Январь");
$this->selenium->select("P13_PERIOD_END_YEAR", "label=2010 год");
$this->selenium->chooseOkOnNextConfirmation();
$this->selenium->click("link=Создать");############################ вызов конфирмейшена
$this->selenium->getConfirmation();
$this->selenium->waitForPageToLoad("30000");
$this->assertEquals("Создание/Изменение запуска", $this->selenium->getTitle());

лог же пишет
getConfirmation ERROR: There were no confirmations

лог Selenium

16:16:45.939 INFO - Got result: OK on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.164 INFO - Command request: chooseOkOnNextConfirmation[, ] on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.180 INFO - Got result: OK on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.386 INFO - Command request: click[link=╤ючфрЄ№, ] on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.404 INFO - Got result: OK on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.607 INFO - Command request: getConfirmation[, ] on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.622 INFO - Got result: ERROR: There were no confirmations on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.806 INFO - Command request: testComplete[, ] on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.807 INFO - Killing Firefox...
16:16:47.120 INFO - Got result: OK on session 196bffb0cb0a4bc5ac2dd0b56da7484f
  • 0

#10 KaZiK

KaZiK

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Казимирчик Владимир

Отправлено 20 декабря 2010 - 10:24

у меня к сожалению не работает...
код где вызывается окно конфирмейшн

$this->selenium->select("SELL_CA_TYPE", "label=FIRST, FIRST");
$this->assertEquals("Создание/Изменение запуска", $this->selenium->getTitle());
$this->selenium->select("P13_CA_RUN_TPN_TYPE", "label=РНН");
$this->selenium->select("P13_PERIOD_START_MONTH", "label=Январь");
$this->selenium->select("P13_PERIOD_START_YEAR", "label=2009 год");
$this->selenium->select("P13_PERIOD_END_MONTH", "label=Январь");
$this->selenium->select("P13_PERIOD_END_YEAR", "label=2010 год");
$this->selenium->chooseOkOnNextConfirmation();
$this->selenium->click("link=Создать");############################ вызов конфирмейшена
$this->selenium->getConfirmation();
$this->selenium->waitForPageToLoad("30000");
$this->assertEquals("Создание/Изменение запуска", $this->selenium->getTitle());

лог же пишет
getConfirmation ERROR: There were no confirmations

лог Selenium

16:16:45.939 INFO - Got result: OK on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.164 INFO - Command request: chooseOkOnNextConfirmation[, ] on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.180 INFO - Got result: OK on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.386 INFO - Command request: click[link=╤ючфрЄ№, ] on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.404 INFO - Got result: OK on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.607 INFO - Command request: getConfirmation[, ] on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.622 INFO - Got result: ERROR: There were no confirmations on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.806 INFO - Command request: testComplete[, ] on session 196bffb0cb0a4bc5ac2dd0b56da7484f
16:16:46.807 INFO - Killing Firefox...
16:16:47.120 INFO - Got result: OK on session 196bffb0cb0a4bc5ac2dd0b56da7484f


Быстро нагугленный пример :)
Попробуйте без getConfirmation(). Жаль у меня не осталось примера :(
  • 0

#11 skalolaz

skalolaz

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

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Andrey

Отправлено 20 декабря 2010 - 10:42

к сожалению он у меня сразу начинает ругатся при использовании getConfirmation()
  • 0

#12 skalolaz

skalolaz

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

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Andrey

Отправлено 21 декабря 2010 - 09:38

подскажите разницу assertFalse и assertTrue.. при использовании
$this->assertTrue((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));

результат возвращает false, я так понимаю потому что не видит появившегося окна конфирмейшена? при этом когда я задаю
$this->assertFalse((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));

операци проходит валидно, так как я заренее говорю что это False? тем не мение я не могу захватиь этот конфирмейшн... почемуто не срабатывает метод KeyPressNative(13). причём когда я руками прохожу по приложению в этом месте конфирмейшн не возникает
  • 0

#13 OVA

OVA

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

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 21 декабря 2010 - 09:49

Я не понял ничего. Что не возникает? Окошко? Под селениумом оно и не будет никогда появляться. Уж так он устроен. Но он может честно возле него зависнуть или словить текст.

assertTrue проверяет что кондишен True. Если нет, то валится. Второй наоборот.
  • 0

#14 skalolaz

skalolaz

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

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Andrey

Отправлено 22 декабря 2010 - 04:58

Я не понял ничего. Что не возникает? Окошко? Под селениумом оно и не будет никогда появляться. Уж так он устроен. Но он может честно возле него зависнуть или словить текст.

assertTrue проверяет что кондишен True. Если нет, то валится. Второй наоборот.

как раз окно возникает, а селениум его не видит, но когда тест проходит вручную окна нет
  • 0

#15 ekulgavaya

ekulgavaya

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

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


Отправлено 24 декабря 2010 - 15:52

$this->assertTrue((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));

результат возвращает false, я так понимаю потому что не видит появившегося окна конфирмейшена? при этом когда я задаю
$this->assertFalse((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));


Условие в скобочках в обоих случаях возвращает false, просто во втором случае вы этого и ожидаете ( то есть это не подтверждение того. что на странице что-то появилось)

причём когда я руками прохожу по приложению в этом месте конфирмейшн не возникает


Как это не возникает? совсем-совсем что ли?
  • 0
In God we trust, the rest we test.

#16 mosketrem

mosketrem

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

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Дмитрий


Отправлено 12 января 2011 - 15:37

almarka / skalolaz, этот конформейшен вобще конформейшн ? В смысле, это системное окошко с просьбой подтвердить ? Может это просто новый HTML-элемент, который рисуется как конформейшн после клика по вашей ссылке ? Тогда к кнопке "Yes" нужно добираться просто по xPath. Например, у меня такое часто бывало. Если форма конформейшина должна быть с каким-то особым дизайном, то её с нуля верстают и подключают к JS-сценарию.
  • 0

#17 skalolaz

skalolaz

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

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Andrey

Отправлено 18 января 2011 - 04:24


$this->assertTrue((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));

результат возвращает false, я так понимаю потому что не видит появившегося окна конфирмейшена? при этом когда я задаю
$this->assertFalse((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));


Условие в скобочках в обоих случаях возвращает false, просто во втором случае вы этого и ожидаете ( то есть это не подтверждение того. что на странице что-то появилось)

причём когда я руками прохожу по приложению в этом месте конфирмейшн не возникает


Как это не возникает? совсем-совсем что ли?

совсем-совсем :acute:
  • 0

#18 ekulgavaya

ekulgavaya

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

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


Отправлено 18 января 2011 - 13:35

ну я наоборот видела ( имею ввиду, что алерты при выполнении автотестов е видны), а вот так вот... Прям мистика
  • 0
In God we trust, the rest we test.

#19 skalolaz

skalolaz

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

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Andrey

Отправлено 19 января 2011 - 04:33

ну я наоборот видела ( имею ввиду, что алерты при выполнении автотестов е видны), а вот так вот... Прям мистика

я в своей теме выложил видео с этой мистикой, можешь посмареть :biggrin:
  • 0

#20 ekulgavaya

ekulgavaya

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

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


Отправлено 19 января 2011 - 15:09

посмАтрела я ваше видео. Диагноз не поставила. Соковня
  • 0
In God we trust, the rest we test.


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

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