Что нового

Клик по элементу input

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Есть на странице поле для ввода текста и кнопка. Как можно кликнуть по input? Вот её код:
Код:
<input name="sum" type="text" id="gameee" />
Подскажите, как такое можно сделать?
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Если нужно заполнить поле используй функцию
Код:
_IEFormElementGetValue

Если нужно прочитать что написано в поле то
Код:
_IEFormElementSetValue

Код:
#include <IE.au3>
$sUrl = "http://www.tvoysait.ru/"
$oIE = _IECreate($sUrl)
$gameee = _IEGetObjById($oIE, 'gameee')
MsgBox(0, "Поле содержит", _IEFormElementGetValue($gameee))
_IEFormElementSetValue($gameee, "NEW TEXT")
А для клика по кнопке можно использовать
Код:
_IEAction($oInput, "click")

или
Код:
_IEFormSubmit

Примеры в справке.
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Вот такой код составил

Код:
$oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
$oText = _IEFormElementGetObjByName ($oForm, "sum")
_IEFormElementSetValue ($oText, '0.01')

Вроде всё правильно, но не вписывает в поле почему-то....
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
SHoCK13666 [?]
Вроде всё правильно, но не вписывает в поле почему-то....
А так?
Код:
#include <IE.au3>

$oIE = _IE_Example('form')
$oForm = _IEFormGetObjByName($oIE, 'ExampleForm')
$oText = _IEFormElementGetObjByName($oForm, 'textExample')
ConsoleWrite('Before: "' & _IEFormElementGetValue($oText) & '"' & @LF)
_IEFormElementSetValue($oText, '0.01')
ConsoleWrite('After: "' & _IEFormElementGetValue($oText) & '"' & @LF)
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
madmasles, тоже не вписывает...
Может это из-а того, что на странице несколько полей ввода с name='sum' ?
Можно ли в коде написать не name элемента, а, например, id?
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
SHoCK13666 сказал(а):
Может это из-а того, что на странице несколько полей ввода с name='sum' ?
Я думаю в этом вся проблема. Да, из-за этого наверно и не работает.
SHoCK13666 сказал(а):
Можно ли в коде написать не name элемента, а, например, id?
Конечно можно...
См. моё сообщение.
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
alex33,
Что в этом коде не правильно?
Код:
$oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
$oText = _IEFormElementGetObjByName ($oForm, "gameee")
_IEFormElementSetValue ($oText, '0.01')

И в ScITE при выполнении показывает такую ошибку
[box title=]--> IE.au3 V2.4-0 Warning from function _IEFormGetObjByName, $_IEStatus_NoMatch
--> IE.au3 V2.4-0 Error from function _IEFormElementGetObjByName, $_IEStatus_InvalidDataType
--> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType[/box]
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Что в этом коде не правильно?
Вторая строка.
Попробуй так
Код:
$oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
$oText = _IEGetObjById ($oForm, "gameee")
_IEFormElementSetValue ($oText, '0.01')
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
[box title=]--> IE.au3 V2.4-0 Warning from function _IEFormGetObjByName, $_IEStatus_NoMatch
--> IE.au3 V2.4-0 Error from function _IEGetObjById, $_IEStatus_InvalidDataType
--> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType[/box]
Теперь такая ошибка... В поле по прежнему не вписывает.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Значит name формы ExampleForm не правильный...
ExampleForm это name или id? И правильный ли он?
если id то
Код:
$oForm = _IEGetObjById ($oIE, "ExampleForm")

Если name - проверь его на правильность реальной формы.

И вообще я думаю лучше будет выложить код полно страницы сюда...
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
No Match варианты перевода:
1. совпадения нет
2. нет совпадений

Очевидно что ты взял предложенный код

Код:
$oIE = _IE_Example('form')
$oForm = _IEFormGetObjByName($oIE, 'ExampleForm')


И вместо _IE_Example('form') поставил открытие своей странички.
Но на твоей то страничке нет объектов с именем 'ExampleForm' ...


SHoCK варианты перевода:
шок, потрясение
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Так заработало:
Код:
$oForm = _IEGetObjById ($oIE, "gameee")
_IEFormElementSetValue ($oForm, '0.01')

Спасибо всем!
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
alex33,
Удивили. :smile:
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
madmasles
Ой, извените пожалуйста... Да уж, я сам себя удивил...
 
Верх