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

Фотография

как дописать к заполненному полю input символ?


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

#1 anechka07

anechka07

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

  • Members
  • Pip
  • 41 сообщений
  • ФИО:К.А.Г.
  • Город:Россия, Краснодар

Отправлено 04 февраля 2009 - 10:36

Selenium RC; phpunit
У меня возникла след. задача:
Имею поле селект, но значения в него подгружаются jscript-ом по мере вписывания пользователем слова. Причем выпадающий список отображается после набора первых-3-х букв.
Я хочу набрать "Мос" - а потом как из обычного селекта выбрать label="Москва"
Но когда я делаю: <code>$this->selenium->type("RegionField", "Рос"); </code>
Jscript не срабатывает и в выпадающем списке надпись: Данных соответств. запросу нет

Вот я и пытаюсь найти команду у селена, которая будет по букве дописывать к уже набранному.
Если вам известен более целесообразный метод или команды, напишите пожалуйста.
  • 0

#2 KaNoN

KaNoN

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

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

Отправлено 04 февраля 2009 - 13:02

Selenium RC; phpunit
У меня возникла след. задача:
Имею поле селект, но значения в него подгружаются jscript-ом по мере вписывания пользователем слова. Причем выпадающий список отображается после набора первых-3-х букв.
Я хочу набрать "Мос" - а потом как из обычного селекта выбрать label="Москва"
Но когда я делаю: <code>$this->selenium->type("RegionField", "Рос"); </code>
Jscript не срабатывает и в выпадающем списке надпись: Данных соответств. запросу нет

Вот я и пытаюсь найти команду у селена, которая будет по букве дописывать к уже набранному.
Если вам известен более целесообразный метод или команды, напишите пожалуйста.

Основная проблема в том, что реакция идет на срабатывание некоторого event-а, для которого предусмотрен обработчик. Вот помимо ввода текста, нужно еще и инициировать вызов этого события. Чтобы узнать более детально, что же на самом деле нужно, ьыло бы неплохо получить HTML-код данного поля ввода.
  • 0

#3 anechka07

anechka07

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

  • Members
  • Pip
  • 41 сообщений
  • ФИО:К.А.Г.
  • Город:Россия, Краснодар

Отправлено 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;
	}
}

  • 0

#4 KaNoN

KaNoN

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

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

Отправлено 05 февраля 2009 - 11:36

По приведенному фрагменту пока что не получилось определить, какое событие инициировать.
Текстовое поле всегда подобное описание имеет?

Еще как вариант вместо метода type использовать метод keyPress. Насколько я понимаю, у него немного другой механизм ввода значений.
  • 0

#5 NLord

NLord

    Активный участник

  • Members
  • PipPip
  • 108 сообщений

Отправлено 05 февраля 2009 - 11:56

.typeKeys() ещё как вариант. Либо "извращённый" вариант
selenium.typeKeys(elementLocator, textToType);
selenium.type(elementLocator, textToType);
иногда это работает много лучше .typeKeys(), только не спрашивайте почему ;).
  • 0
"Меня терзают смутные сомненья..." что это работает.

#6 anechka07

anechka07

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

  • Members
  • Pip
  • 41 сообщений
  • ФИО:К.А.Г.
  • Город:Россия, Краснодар

Отправлено 05 февраля 2009 - 13:55

.typeKeys() ещё как вариант. Либо "извращённый" вариант
selenium.typeKeys(elementLocator, textToType);
selenium.type(elementLocator, textToType);
иногда это работает много лучше .typeKeys(), только не спрашивайте почему ;).

Действительно - классная команда! selenium.typeKeys(elementLocator, textToType);
Она реально эмитирует нажатие кнопки в elementLocator.
Спасибо за ответы.
  • 0


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

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