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

Фотография

Системные сообщения в IE


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

#1 Greed

Greed

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Чуканцев Алексей Алексеевич

Отправлено 25 ноября 2009 - 09:22

Доброго времени суток! Опять взываю к коллективному разуму.
Ситуация следующая:
1) Появляется окноИзображение
2) В HTML
<script language="javascript">
alert("Задайте должность\n");
</script>

Вопрос следующий - как проверить текст ошибки, если
-IsAllertPresent=false
-IsConfirmationPresent=false
-IsPromptPresent=false
-GetAllWindowsIds - его не находит

Заранее спасибо за содействие)))
  • 0

#2 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 25 ноября 2009 - 09:52

Доброго времени суток! Опять взываю к коллективному разуму.
Ситуация следующая:
1) Появляется окно
2) В HTML
&lt;script language="javascript">
alert("Задайте должность\n");
</script>

Вопрос следующий - как проверить текст ошибки, если
-IsAllertPresent=false
-IsConfirmationPresent=false
-IsPromptPresent=false
-GetAllWindowsIds - его не находит

Заранее спасибо за содействие)))

Обработка и получение текста алерта осуществляется связкой методов isAlertPresent и getAlert. Последний возвращает текст сообщения и закрывает алерт диалог. Соответственно, поставив isAlertPresent именно после того, как алерт появлися, можно его перехватить.

Но есть маленький нюанс. Если алерт появляется до того, как страница загрузилась (например в обработчике события onload), то такой алерт селениумом не перехватывается.
  • 0

#3 Greed

Greed

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Чуканцев Алексей Алексеевич

Отправлено 25 ноября 2009 - 10:44

Обработка и получение текста алерта осуществляется связкой методов isAlertPresent и getAlert. Последний возвращает текст сообщения и закрывает алерт диалог. Соответственно, поставив isAlertPresent именно после того, как алерт появлися, можно его перехватить.

Но есть маленький нюанс. Если алерт появляется до того, как страница загрузилась (например в обработчике события onload), то такой алерт селениумом не перехватывается.


isAlertPresent возвращает FALSE, + если бы это был полноценный java alert то его недолжно было быть видно(. Пробовал использовать ide, при записи когда нажал ОК Selenium ide ничего не записал, как будто и не было нажатия.
  • 0

#4 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 25 ноября 2009 - 10:46

Думаю, что автор немного некорректно описал тему вопроса. то что его интересует - это не системное сообщение, а банальный Alert.

Вот лично у меня вопрос, который заинтересует многих: может ли Selenium обрабатывать именно системные сообщения/диалоги и т.д. Например: FileDialg, авторизационный диалог и т.д.
  • 0
Алексей Булат
Про Тестинг

#5 Greed

Greed

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Чуканцев Алексей Алексеевич

Отправлено 25 ноября 2009 - 10:55

Думаю, что автор немного некорректно описал тему вопроса. то что его интересует - это не системное сообщение, а банальный Alert.

Это сообщение не является "Банальным Alert" во-первых из-за того, что isAlertPresent возвращает FALSE, а во-вторых согласно документации по Selenium Javascript алерты не отображаются, а это сообщение отображается.
Такой конфуз - алерт есть, но в то же время его нет(

Разобрался в причине - "Selenium does NOT support JS alerts that generated in a pages onload() event handler". Т.е. сообщение приходит со стороны сервера. Есть идеи по решению?
  • 0

#6 Greed

Greed

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Чуканцев Алексей Алексеевич

Отправлено 25 ноября 2009 - 12:39

Я знаю что это обсуждалось http://www.it4busine...php/t14595.html
Но вдруг кто-то нашел решение.
  • 0

#7 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 25 ноября 2009 - 12:58

Думаю, что автор немного некорректно описал тему вопроса. то что его интересует - это не системное сообщение, а банальный Alert.

Вот лично у меня вопрос, который заинтересует многих: может ли Selenium обрабатывать именно системные сообщения/диалоги и т.д. Например: FileDialg, авторизационный диалог и т.д.

Походу, это врядли. По ряду причин. Во-первых, системные диалоги различаются для разных браузеров, причем различия порой достаточно существенные. Во-вторых, селениум работает по принципу посылки JavaScript инструкций объекту документа, а такие диалоги находятся за пределами досягаемости, с ними надо работать на уровне операционной системы. Соответственно, надо извращаться,чтобы обойти появление данных диалогов. В частности, для ввода пути к файлу загружаться в chrome-режиме (тогда селениум сможет редактировать данное поле), а диалог авторизации зачастую можно обойти с помощью определенных параметров адресной строки.

Я знаю что это обсуждалось http://www.it4busine...php/t14595.html
Но вдруг кто-то нашел решение.

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

#8 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 25 ноября 2009 - 13:48

Думаю, что автор немного некорректно описал тему вопроса. то что его интересует - это не системное сообщение, а банальный Alert.

Вот лично у меня вопрос, который заинтересует многих: может ли Selenium обрабатывать именно системные сообщения/диалоги и т.д. Например: FileDialg, авторизационный диалог и т.д.

Походу, это врядли. По ряду причин. Во-первых, системные диалоги различаются для разных браузеров, причем различия порой достаточно существенные. Во-вторых, селениум работает по принципу посылки JavaScript инструкций объекту документа, а такие диалоги находятся за пределами досягаемости, с ними надо работать на уровне операционной системы. Соответственно, надо извращаться,чтобы обойти появление данных диалогов. В частности, для ввода пути к файлу загружаться в chrome-режиме (тогда селениум сможет редактировать данное поле), а диалог авторизации зачастую можно обойти с помощью определенных параметров адресной строки.

Да так и есть, системные диалоги практически вне зоны доступа... Именно по этой причине у нас Selenium был убран "с передовой в тыл". И то остался только благодаря работе с FF. У нас же сейчас используется Watij. За счет своей "нативной" природы через jniwrap.dll мы можем сами имплементить работу с разными системными и не только системными окнами, правда только из под IE и на Win OS...

Вообще было бы неплохо и Селену, сделать что-то подобное...
  • 0
Алексей Булат
Про Тестинг

#9 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 25 ноября 2009 - 14:08

Думаю, что автор немного некорректно описал тему вопроса. то что его интересует - это не системное сообщение, а банальный Alert.

Вот лично у меня вопрос, который заинтересует многих: может ли Selenium обрабатывать именно системные сообщения/диалоги и т.д. Например: FileDialg, авторизационный диалог и т.д.

Походу, это врядли. По ряду причин. Во-первых, системные диалоги различаются для разных браузеров, причем различия порой достаточно существенные. Во-вторых, селениум работает по принципу посылки JavaScript инструкций объекту документа, а такие диалоги находятся за пределами досягаемости, с ними надо работать на уровне операционной системы. Соответственно, надо извращаться,чтобы обойти появление данных диалогов. В частности, для ввода пути к файлу загружаться в chrome-режиме (тогда селениум сможет редактировать данное поле), а диалог авторизации зачастую можно обойти с помощью определенных параметров адресной строки.

Да так и есть, системные диалоги практически вне зоны доступа... Именно по этой причине у нас Selenium был убран "с передовой в тыл". И то остался только благодаря работе с FF. У нас же сейчас используется Watij. За счет своей "нативной" природы через jniwrap.dll мы можем сами имплементить работу с разными системными и не только системными окнами, правда только из под IE и на Win OS...

Вообще было бы неплохо и Селену, сделать что-то подобное...

В ряде вещей рекомендуют использовать возможности стандартных библиотек используемого языка программирования. В частности для того же Java в ряде случаев можно воспользоваться классом java.awt.Robot для эмуляции ввода с клавиатуры, движений мышкой и т.п.

Основной недостаток в том, что во время выполнения тестов окно браузера должно быть активным. Это нивелирует преимущество селениума в том, что тесты могут выполняться в фоновом режиме, в то время как вы можете работать на той же машине над другими задачами.
  • 0

#10 Greed

Greed

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Чуканцев Алексей Алексеевич

Отправлено 26 ноября 2009 - 07:41

Boltick, спасибо попробую Watij)
KaNoN, спасибо за разъяснение)
  • 0

#11 barancev

barancev

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

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


Отправлено 26 ноября 2009 - 08:40

Вообще было бы неплохо и Селену, сделать что-то подобное...

WebDriver
Он разрабатывался отдельно, но сейчас уже идёт слияние с селеном.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


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

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