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

Фотография

Альтернатива коммане type


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

#1 mosketrem

mosketrem

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

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


Отправлено 29 октября 2010 - 15:04

Привет ! Пользуюсь Selenium для автоматизации тестирования. Столкнулся с проблемой. На одной страничке есть полу input с кнопкой OK. Если вводить в это поле текст с клавиатуры, то спокойно можно нажать на кнопку OK и предназначенная этой кнопке функциональность срабатывает, обрабатывая введенный текст. Если же я это все записиываю в selenium скрипт, то после выполнения комманды type как сама кнопка OK, так и поле для ввода блокируются, и тест проваливается. Видимо это какой-то глюк на сайте, но пока его выловят, прйдет "год и русский месяц", а тест надо написать сейчас. Как можно обойти эту проблему ? Может дело в установке курсора в поле ввода при наборе с клавиатуры ? Может кто сталкивался с этой проблемой ?
В общем буду благодарен за любую помощь.
  • 0

#2 KaNoN

KaNoN

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

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

Отправлено 29 октября 2010 - 15:12

Это не глюк. Команда type по сути просто присваивает текст полю value текстового элемента. А в вашем случае кнопка активируется как результат срабатывания события onKeyPress или подобного, которое команда type инициирует.

Соответственно, есть 2 основных варианта:
1) Воспользоваться методом typeKeys
2) После ввода текста при помощи type вызвать fireEvent метод и передать параметром либо "keyPress" , "keyUp" или "keyDown", в зависимости от того, что за событие реально сработало
  • 0

#3 mosketrem

mosketrem

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

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


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

Спасибо за быстрый ответ. typeKeys помог.
  • 0

#4 SMakc

SMakc

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

  • Members
  • Pip
  • 56 сообщений
  • ФИО:Максим
  • Город:Москва

Отправлено 30 октября 2010 - 09:04

Спасибо за быстрый ответ. typeKeys помог.

Но багу все же стоит исправить, потому как скорее всего вставка из буфера обмена так же не активирует кнопку Ок (проверьте в FF).
Это кстати очень частый косяк web-разработчиков.
  • 0

#5 mosketrem

mosketrem

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

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


Отправлено 30 октября 2010 - 10:04

Спасибо за совет. Проверил вариант с копипастом - работает. Видимо из-за того, что при вставке из буфера все равно нужно кликнуть в поле ввода мышкой, наверное это вызывает необходимое событие.
  • 0

#6 SMakc

SMakc

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

  • Members
  • Pip
  • 56 сообщений
  • ФИО:Максим
  • Город:Москва

Отправлено 30 октября 2010 - 10:07

Спасибо за совет. Проверил вариант с копипастом - работает. Видимо из-за того, что при вставке из буфера все равно нужно кликнуть в поле ввода мышкой, наверное это вызывает необходимое событие.

А попробуй перед вставкой (нажатием правой кнопки мыши) не ставить фокус в поле ввода, у меня так воспроизводилось.
  • 0

#7 mosketrem

mosketrem

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

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


Отправлено 30 октября 2010 - 18:22

Я пробовал без фокуса на поле введа. Я так понимаю это возможно только с использованием Ctrl+V ? В общем таким образом просто ничего не вставляется, потому что поле ввода не активно пока на него не кликнешь. Других способов вопспроизвести глюк не знаю. Может Вы можете сказать в чем в таком случае заключается ошибка веб-программиста ? Я тогда просто попрошу оного проверить свой код.
  • 0


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

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