как дописать к заполненному полю input символ?
#1
Отправлено 04 февраля 2009 - 10:36
У меня возникла след. задача:
Имею поле селект, но значения в него подгружаются jscript-ом по мере вписывания пользователем слова. Причем выпадающий список отображается после набора первых-3-х букв.
Я хочу набрать "Мос" - а потом как из обычного селекта выбрать label="Москва"
Но когда я делаю: <code>$this->selenium->type("RegionField", "Рос"); </code>
Jscript не срабатывает и в выпадающем списке надпись: Данных соответств. запросу нет
Вот я и пытаюсь найти команду у селена, которая будет по букве дописывать к уже набранному.
Если вам известен более целесообразный метод или команды, напишите пожалуйста.
#2
Отправлено 04 февраля 2009 - 13:02
Основная проблема в том, что реакция идет на срабатывание некоторого event-а, для которого предусмотрен обработчик. Вот помимо ввода текста, нужно еще и инициировать вызов этого события. Чтобы узнать более детально, что же на самом деле нужно, ьыло бы неплохо получить HTML-код данного поля ввода.Selenium RC; phpunit
У меня возникла след. задача:
Имею поле селект, но значения в него подгружаются jscript-ом по мере вписывания пользователем слова. Причем выпадающий список отображается после набора первых-3-х букв.
Я хочу набрать "Мос" - а потом как из обычного селекта выбрать label="Москва"
Но когда я делаю: <code>$this->selenium->type("RegionField", "Рос"); </code>
Jscript не срабатывает и в выпадающем списке надпись: Данных соответств. запросу нет
Вот я и пытаюсь найти команду у селена, которая будет по букве дописывать к уже набранному.
Если вам известен более целесообразный метод или команды, напишите пожалуйста.
#3
Отправлено 05 февраля 2009 - 07:10
<input id="RegionField" type="text" size="30" value="Краснодар" autocomplete="off"/>
-выпадающий список (если количество букв <3)
<div id="RegionFieldList" class="regionList clear" style="height: auto; left: 428px; top: 400px; width: 206px; display: none;">
<div class="hint">Введите первые 3 буквы названия Города.</div>
-выпадающий список (если количество букв >2)
<div id="RegionFieldList" class="regionList" style="height: 56px; left: 428px; top: 400px; width: 206px; display: none;"> <div id="city0" onclick="jQuery.fn.region.ChooseIt(this);" cityid="3862"> </div> <div id="city1" onclick="jQuery.fn.region.ChooseIt(this);" cityid="4400"> </div> <div id="city2" onclick="jQuery.fn.region.ChooseIt(this);" cityid="4312"> </div> <div id="city3" onclick="jQuery.fn.region.ChooseIt(this);" cityid="4087"> </div> </div> ... jQuery.fn.region.keypress = function(event){ switch(event.keyCode){ case 40: // down case 38: // up case 27: // esc case 13: // enter event.keyCode = 0; return false; } }
#4
Отправлено 05 февраля 2009 - 11:36
Текстовое поле всегда подобное описание имеет?
Еще как вариант вместо метода type использовать метод keyPress. Насколько я понимаю, у него немного другой механизм ввода значений.
#5
Отправлено 05 февраля 2009 - 11:56
selenium.typeKeys(elementLocator, textToType);
selenium.type(elementLocator, textToType);
иногда это работает много лучше .typeKeys(), только не спрашивайте почему ;).
#6
Отправлено 05 февраля 2009 - 13:55
Действительно - классная команда! selenium.typeKeys(elementLocator, textToType);.typeKeys() ещё как вариант. Либо "извращённый" вариант
selenium.typeKeys(elementLocator, textToType);
selenium.type(elementLocator, textToType);
иногда это работает много лучше .typeKeys(), только не спрашивайте почему ;).
Она реально эмитирует нажатие кнопки в elementLocator.
Спасибо за ответы.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных