Системные сообщения в IE
#1
Отправлено 25 ноября 2009 - 09:22
Ситуация следующая:
1) Появляется окно
2) В HTML
<script language="javascript">
alert("Задайте должность\n");
</script>
Вопрос следующий - как проверить текст ошибки, если
-IsAllertPresent=false
-IsConfirmationPresent=false
-IsPromptPresent=false
-GetAllWindowsIds - его не находит
Заранее спасибо за содействие)))
#2
Отправлено 25 ноября 2009 - 09:52
Обработка и получение текста алерта осуществляется связкой методов isAlertPresent и getAlert. Последний возвращает текст сообщения и закрывает алерт диалог. Соответственно, поставив isAlertPresent именно после того, как алерт появлися, можно его перехватить.Доброго времени суток! Опять взываю к коллективному разуму.
Ситуация следующая:
1) Появляется окно
2) В HTML
<script language="javascript">
alert("Задайте должность\n");
</script>
Вопрос следующий - как проверить текст ошибки, если
-IsAllertPresent=false
-IsConfirmationPresent=false
-IsPromptPresent=false
-GetAllWindowsIds - его не находит
Заранее спасибо за содействие)))
Но есть маленький нюанс. Если алерт появляется до того, как страница загрузилась (например в обработчике события onload), то такой алерт селениумом не перехватывается.
#3
Отправлено 25 ноября 2009 - 10:44
Обработка и получение текста алерта осуществляется связкой методов isAlertPresent и getAlert. Последний возвращает текст сообщения и закрывает алерт диалог. Соответственно, поставив isAlertPresent именно после того, как алерт появлися, можно его перехватить.
Но есть маленький нюанс. Если алерт появляется до того, как страница загрузилась (например в обработчике события onload), то такой алерт селениумом не перехватывается.
isAlertPresent возвращает FALSE, + если бы это был полноценный java alert то его недолжно было быть видно(. Пробовал использовать ide, при записи когда нажал ОК Selenium ide ничего не записал, как будто и не было нажатия.
#4
Отправлено 25 ноября 2009 - 10:46
Вот лично у меня вопрос, который заинтересует многих: может ли Selenium обрабатывать именно системные сообщения/диалоги и т.д. Например: FileDialg, авторизационный диалог и т.д.
Про Тестинг
#5
Отправлено 25 ноября 2009 - 10:55
Это сообщение не является "Банальным Alert" во-первых из-за того, что isAlertPresent возвращает FALSE, а во-вторых согласно документации по Selenium Javascript алерты не отображаются, а это сообщение отображается.Думаю, что автор немного некорректно описал тему вопроса. то что его интересует - это не системное сообщение, а банальный Alert.
Такой конфуз - алерт есть, но в то же время его нет(
Разобрался в причине - "Selenium does NOT support JS alerts that generated in a pages onload() event handler". Т.е. сообщение приходит со стороны сервера. Есть идеи по решению?
#6
Отправлено 25 ноября 2009 - 12:39
#7
Отправлено 25 ноября 2009 - 12:58
Походу, это врядли. По ряду причин. Во-первых, системные диалоги различаются для разных браузеров, причем различия порой достаточно существенные. Во-вторых, селениум работает по принципу посылки JavaScript инструкций объекту документа, а такие диалоги находятся за пределами досягаемости, с ними надо работать на уровне операционной системы. Соответственно, надо извращаться,чтобы обойти появление данных диалогов. В частности, для ввода пути к файлу загружаться в chrome-режиме (тогда селениум сможет редактировать данное поле), а диалог авторизации зачастую можно обойти с помощью определенных параметров адресной строки.Думаю, что автор немного некорректно описал тему вопроса. то что его интересует - это не системное сообщение, а банальный Alert.
Вот лично у меня вопрос, который заинтересует многих: может ли Selenium обрабатывать именно системные сообщения/диалоги и т.д. Например: FileDialg, авторизационный диалог и т.д.
Из того, к чему пришли в данной ветке, в основном все корректировки упираются в настройки браузера или же в специфику селениума. Подобные вещи лучше обходить.Я знаю что это обсуждалось http://www.it4busine...php/t14595.html
Но вдруг кто-то нашел решение.
#8
Отправлено 25 ноября 2009 - 13:48
Да так и есть, системные диалоги практически вне зоны доступа... Именно по этой причине у нас Selenium был убран "с передовой в тыл". И то остался только благодаря работе с FF. У нас же сейчас используется Watij. За счет своей "нативной" природы через jniwrap.dll мы можем сами имплементить работу с разными системными и не только системными окнами, правда только из под IE и на Win OS...Походу, это врядли. По ряду причин. Во-первых, системные диалоги различаются для разных браузеров, причем различия порой достаточно существенные. Во-вторых, селениум работает по принципу посылки JavaScript инструкций объекту документа, а такие диалоги находятся за пределами досягаемости, с ними надо работать на уровне операционной системы. Соответственно, надо извращаться,чтобы обойти появление данных диалогов. В частности, для ввода пути к файлу загружаться в chrome-режиме (тогда селениум сможет редактировать данное поле), а диалог авторизации зачастую можно обойти с помощью определенных параметров адресной строки.Думаю, что автор немного некорректно описал тему вопроса. то что его интересует - это не системное сообщение, а банальный Alert.
Вот лично у меня вопрос, который заинтересует многих: может ли Selenium обрабатывать именно системные сообщения/диалоги и т.д. Например: FileDialg, авторизационный диалог и т.д.
Вообще было бы неплохо и Селену, сделать что-то подобное...
Про Тестинг
#9
Отправлено 25 ноября 2009 - 14:08
В ряде вещей рекомендуют использовать возможности стандартных библиотек используемого языка программирования. В частности для того же Java в ряде случаев можно воспользоваться классом java.awt.Robot для эмуляции ввода с клавиатуры, движений мышкой и т.п.Да так и есть, системные диалоги практически вне зоны доступа... Именно по этой причине у нас Selenium был убран "с передовой в тыл". И то остался только благодаря работе с FF. У нас же сейчас используется Watij. За счет своей "нативной" природы через jniwrap.dll мы можем сами имплементить работу с разными системными и не только системными окнами, правда только из под IE и на Win OS...Походу, это врядли. По ряду причин. Во-первых, системные диалоги различаются для разных браузеров, причем различия порой достаточно существенные. Во-вторых, селениум работает по принципу посылки JavaScript инструкций объекту документа, а такие диалоги находятся за пределами досягаемости, с ними надо работать на уровне операционной системы. Соответственно, надо извращаться,чтобы обойти появление данных диалогов. В частности, для ввода пути к файлу загружаться в chrome-режиме (тогда селениум сможет редактировать данное поле), а диалог авторизации зачастую можно обойти с помощью определенных параметров адресной строки.Думаю, что автор немного некорректно описал тему вопроса. то что его интересует - это не системное сообщение, а банальный Alert.
Вот лично у меня вопрос, который заинтересует многих: может ли Selenium обрабатывать именно системные сообщения/диалоги и т.д. Например: FileDialg, авторизационный диалог и т.д.
Вообще было бы неплохо и Селену, сделать что-то подобное...
Основной недостаток в том, что во время выполнения тестов окно браузера должно быть активным. Это нивелирует преимущество селениума в том, что тесты могут выполняться в фоновом режиме, в то время как вы можете работать на той же машине над другими задачами.
#10
Отправлено 26 ноября 2009 - 07:41
KaNoN, спасибо за разъяснение)
#11
Отправлено 26 ноября 2009 - 08:40
WebDriverВообще было бы неплохо и Селену, сделать что-то подобное...
Он разрабатывался отдельно, но сейчас уже идёт слияние с селеном.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных