Confirmation Messages
#1
Отправлено 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 доходит до этого вейтфоркондишн и засыпает... Ни одного ерора, ничего... Кроме, как ПопАпа с этим меседжем на странице...
Такое ощущение, что он его вообще не распознает...
Может, я что-то не так делаю... Подскажите, плз
#2
Отправлено 16 декабря 2010 - 15:59
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#3
Отправлено 17 декабря 2010 - 05:20
Только ставить это надо строго до выполнения действия которое приведет к появлению конфирмов.
#4
Отправлено 17 декабря 2010 - 07:05
Selenium IDE проходит степ успешно с ChooseOKOnNextConfirmation, кликает успешно по линке и я вижу все этот же конфирмейшн... Не хавает он его и все... Я уже начинаю думать, может это и не конфирмейшн совсем ... Или может такого типа конфирмейшены Selenium IDE не поддерживает в принципе... Но меседж этот не на онлоад ивенте, а появляется каждый раз когда выходишь из страницы, то есть типа на анонлоад ивенте....
#5
Отправлено 17 декабря 2010 - 07:19
Посмотрите там, возможно ответы там уже есть)
#6
Отправлено 17 декабря 2010 - 08:34
#7
Отправлено 20 декабря 2010 - 06:30
можно пример?Если появляется окно Confirmation, то его можно обойти с помощью ChooseOkOnNextConfirmation(ChooseCancelOnNextConfirmation). Только не забудьте после клика(или перед, точно не помню) добавить GetConfirmation. Тогда вы сначала задаете действие при запросе и потом его ждете. Как только появится confirmation, селениум тиснет или Ок или Cancel.
#8
Отправлено 20 декабря 2010 - 09:27
можно пример?
Если появляется окно Confirmation, то его можно обойти с помощью ChooseOkOnNextConfirmation(ChooseCancelOnNextConfirmation). Только не забудьте после клика(или перед, точно не помню) добавить GetConfirmation. Тогда вы сначала задаете действие при запросе и потом его ждете. Как только появится confirmation, селениум тиснет или Ок или Cancel.
Допустим у вас есть уже код теста. При запуске в каком-то месте у вас возникает окно confirmation. Допустим, после нажатия на линк для перехода на другую страницу(например, если тестить гмейл, то такая ситуация возникает если вы удалили письмо и сразу же переходите из инбокса в отправленные. или когда из архива удаляете письмо). Так вотю перед кликом добавьте ChooseOkOnNextConfirmation(), а после GetConfirmation().
Если не изменяет память - все отработает на ура.
#9
Отправлено 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
#10
Отправлено 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(). Жаль у меня не осталось примера :(
#11
Отправлено 20 декабря 2010 - 10:42
#12
Отправлено 21 декабря 2010 - 09:38
$this->assertTrue((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));
результат возвращает false, я так понимаю потому что не видит появившегося окна конфирмейшена? при этом когда я задаю
$this->assertFalse((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));
операци проходит валидно, так как я заренее говорю что это False? тем не мение я не могу захватиь этот конфирмейшн... почемуто не срабатывает метод KeyPressNative(13). причём когда я руками прохожу по приложению в этом месте конфирмейшн не возникает
#13
Отправлено 21 декабря 2010 - 09:49
assertTrue проверяет что кондишен True. Если нет, то валится. Второй наоборот.
#14
Отправлено 22 декабря 2010 - 04:58
как раз окно возникает, а селениум его не видит, но когда тест проходит вручную окна нетЯ не понял ничего. Что не возникает? Окошко? Под селениумом оно и не будет никогда появляться. Уж так он устроен. Но он может честно возле него зависнуть или словить текст.
assertTrue проверяет что кондишен True. Если нет, то валится. Второй наоборот.
#15
Отправлено 24 декабря 2010 - 15:52
$this->assertTrue((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));
результат возвращает false, я так понимаю потому что не видит появившегося окна конфирмейшена? при этом когда я задаю
$this->assertFalse((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));
Условие в скобочках в обоих случаях возвращает false, просто во втором случае вы этого и ожидаете ( то есть это не подтверждение того. что на странице что-то появилось)
причём когда я руками прохожу по приложению в этом месте конфирмейшн не возникает
Как это не возникает? совсем-совсем что ли?
#16
Отправлено 12 января 2011 - 15:37
#17
Отправлено 18 января 2011 - 04:24
совсем-совсем
$this->assertTrue((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));
результат возвращает false, я так понимаю потому что не видит появившегося окна конфирмейшена? при этом когда я задаю
$this->assertFalse((bool)preg_match("/^Данные были изменены. В случае ухода со страницы ваши изменения будут потеряны. [\s\S]$/"));
Условие в скобочках в обоих случаях возвращает false, просто во втором случае вы этого и ожидаете ( то есть это не подтверждение того. что на странице что-то появилось)причём когда я руками прохожу по приложению в этом месте конфирмейшн не возникает
Как это не возникает? совсем-совсем что ли?
#18
Отправлено 18 января 2011 - 13:35
#19
Отправлено 19 января 2011 - 04:33
я в своей теме выложил видео с этой мистикой, можешь посмаретьну я наоборот видела ( имею ввиду, что алерты при выполнении автотестов е видны), а вот так вот... Прям мистика
#20
Отправлено 19 января 2011 - 15:09
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных