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

Фотография

Selenium + showModalDialog( )


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

#1 garnett

garnett

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

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Денис Лебедев

Отправлено 01 февраля 2011 - 17:05

Собственно проблема в следующем:
Есть один сайт, в котором как вы уже поняли используются модальные диалоги showModalDialog( ).

На данный момент мне известно следующее
1. Selenium из коробки не работает с модальными окнами
2. Селениум можно модифицировать, чтобы он открывал все новые окна как не модальные. линк

Второй вариант для меня заработал с одним но - некорректно обрабатываются возвращаемые диалогом значения (подробности мне не известны), а их обработка важна.

Как быть в данной ситуации?

P.S.
Попробовал подключить Watin, он модальные диалоги скушал на ура, но возникли немного другие проблемы. Так что этот вариант не рассматриваем.
  • 0

#2 stmark

stmark

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

  • Members
  • PipPipPipPip
  • 404 сообщений
  • ФИО:Докучаев Сергей
  • Город:Ярославль


Отправлено 01 февраля 2011 - 21:53

Как быть в данной ситуации?


Возможны такие варианты:

1. Использовать библиотеку, в которой реализована генерация нажатий кнопок на уровне ОС (для Java - это Robot). То есть комбинируя и опытным путём подбирая нужную последовательность нажатий\кликов добиваемся закрытия окна.

2. Использовать WebDriver.

3. Использовать сторонний инструмент, например AutoIt.

4. Прочие варианты (для Windows - WinAPI или плагины для автоматического закрытия любых модальных окон) будем считать извратом не эффективными.
  • 0

#3 garnett

garnett

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

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Денис Лебедев

Отправлено 02 февраля 2011 - 08:41

смотрел в сторону AutoIt, но посчитал это в некотором роде извратом, т.к модальных окошек на сайте достаточно много.

При использовании Watin возникла следующая проблема:
Для того, чтобы модальный диалог появился, нужно нажать кнопку Add.
Просто Click() не открывает окно, работает исключительно с MouseDown(). Опытным путем было установлено, что MouseDown() не подходит (как и FireEvent()). Как еще можно кликнуть на кнопку?
Код кнопки:
<li style="float: left; height: 15px;" class="igdm_MenuItemHorizontalRoot " id="x:2002305868.3:adr:0" adr="0">
<a onclick="{return false;}" class="igdm_MenuItemHorizontalRootLink " tabindex="-1" href="javascript:void(0)" accesskey="">
<span tabindex="-1">Add</span></a></li>

  • 0

#4 Linux5

Linux5

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

  • Members
  • Pip
  • 73 сообщений
  • ФИО:Igor
  • Город:Moscow

Отправлено 03 февраля 2011 - 09:48


Как быть в данной ситуации?


Возможны такие варианты:

1. Использовать библиотеку, в которой реализована генерация нажатий кнопок на уровне ОС (для Java - это Robot). То есть комбинируя и опытным путём подбирая нужную последовательность нажатий\кликов добиваемся закрытия окна.

2. Использовать WebDriver.

3. Использовать сторонний инструмент, например AutoIt.

4. Прочие варианты (для Windows - WinAPI или плагины для автоматического закрытия любых модальных окон) будем считать извратом не эффективными.


не получается с помощью WebDriver - мне надо ввсести креденшелы при входе на сайт
Вот такой простой код (на Net )
IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl(MY URL);
У меня Открывается диалоговое окно для ввода логина и пароля и на следующую строчку Selenium2 не переходит пока я не закрою окошко с логином и паролем
  • 0

#5 Captiva

Captiva

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

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

Отправлено 26 апреля 2011 - 13:45

Всем здравствуйте

Я пытаюсь загрузить файл с помощью джаваскриптовой формы в ИЕ. Хочу использовать AutoIt для работы с File Open Dialog. К сожалению, не могу дойти до AutoIt, т.к. не срабатывает нажатие на кнопку аплоада.
При этом я вижу, что локейтор выбран правильно, т.к. кнопка "мигает" при MouseDownAt/MouseUpAt, но диалог в итоге не открывается.

Пробовала Click, MouseDownAt/MouseUpAt, focus > keyPressNative, AttachFile, табом с клавиатуры > enter. Пока ничего не сработало.

Кроме того, похоже, что методы, обходящие открытие диалога, мне не подходят, т.к. перед сохранением форма валидирует поле, которое заполняется при аплоаде. Так что нужно все-таки открыть диалог.

Ниже ДОМ, содержащий кнопку аплоада. Кликала по table и по img, keyPressNative и AttachFile передавала в input.

Прикрепленный файл  DOM.png   31,13К   17 Количество загрузок:

Что я делаю неправильно?
  • 0

#6 barancev

barancev

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

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


Отправлено 26 апреля 2011 - 18:47

не получается с помощью WebDriver - мне надо ввсести креденшелы при входе на сайт

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

#7 barancev

barancev

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

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


Отправлено 26 апреля 2011 - 18:49

Пробовала Click, MouseDownAt/MouseUpAt, focus > keyPressNative, AttachFile, табом с клавиатуры > enter. Пока ничего не сработало.

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

#8 Captiva

Captiva

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

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

Отправлено 27 июня 2011 - 01:33

Надо узнать (например, у разработчиков спросить), на какой элемент обработчик повешен, и на какое конкретно событие -- и нацелить туда тест.
Или -- используйте WebDriver, там можно кликать не так прицельно, всё равно все нужные события отработают.


Алексей, спасибо за ответ. Сама не нашла, действительно помогли разработчики.
Если кто-нибудь столкнется с такой проблемой, в моем случае помог щелчек по "//input[@name='applicationIcon']"
  • 0

#9 ARMAN

ARMAN

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

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

Отправлено 17 января 2016 - 18:15

Здравствуйте! Подскажите пожалуйста как можно во всплывающем окне "мазилы" нажать кнопку "ОК". В принципе можно нажать и кнопку ENTER но так как это диалоговое окно "мазилы", то локатор на него не пропишешь?


  • 0

#10 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 18 января 2016 - 08:32

            Robot robot = new Robot();
            robot.keyPress(KeyEvent.VK_ENTER);
            Thread.sleep(200);
            robot.keyRelease(KeyEvent.VK_ENTER);

  • 0


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

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