Автор Тема: Заполнение данных в IE (Value)  (Прочитано 779 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 351
  • Репутация: 2
    • Награды
Заполнение данных в IE (Value)
« Создано: Ноябрь 21, 2017, 15:25:25 »
Версия AutoIt: 3.2.14

Описание:
Помогите пожалуйста заполнить вот это.
К сожалению саму ссылку не могу дать, нужно регистрироваться.

<input id="cardpan" type="text" value="" autocomplete="off" style="background: linear-gradient(rgb(230, 230, 230) 0%, rgb(255, 255, 255) 100%) padding-box; border: 1px solid rgb(192, 192, 192); border-radius: 6px; height: 28px; line-height: 28px; padding: 0px 7px; margin: 0px 5px 0px 0px; color: rgb(0, 66, 118); font-size: 14px; font-weight: bold; float: none; display: inline-block; width: 208px;">
Пробую этим способом
Код: AutoIt [Выделить]
local $sNummer ="123456789"
 $oNummer = _IEGetObjById($oIE, 'cardpan')
  _IEFormElementSetValue($oNummer, $sNummer)


Но не выходит.
Всегда пользовался таким вариантом, для автоматической регистрации, но тут никак.
« Последнее редактирование: Ноябрь 21, 2017, 15:50:08 от Dk »

Русское сообщество AutoIt

Заполнение данных в IE (Value)
« Отправлен: Ноябрь 21, 2017, 15:25:25 »

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3653
  • Репутация: 968
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Заполнение данных в IE (Value)
« Ответ #1, Отправлен: Ноябрь 21, 2017, 15:39:55 »
В html-коде id="cardpan". А вы запрашиваете "cardcvc2".
« Последнее редактирование: Ноябрь 21, 2017, 15:47:00 от InnI »

Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 351

  • Автор темы
  • Репутация: 2
    • Награды
Re: Заполнение данных в IE (Value)
« Ответ #2, Отправлен: Ноябрь 21, 2017, 15:51:38 »
В html-коде id="cardpan". А вы запрашиваете "cardcvc2".

То я ошибся. Я исправил.
Я запрашивал cardpan.
Запутался вставил не тот пример.

Поле ввода по прежнему не заполняется.

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3653
  • Репутация: 968
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Заполнение данных в IE (Value)
« Ответ #3, Отправлен: Ноябрь 21, 2017, 15:57:16 »
Я сохранил строку в test.html и всё прекрасно заполняется в IE11 на Win7x86
Код: AutoIt [Выделить]
#include <IE.au3>

$oIE = _IECreate("file:\\" & @ScriptDir & "\test.html")
local $sNummer ="123456789"
$oNummer = _IEGetObjById($oIE, 'cardpan')
_IEFormElementSetValue($oNummer, $sNummer)


Русское сообщество AutoIt

Re: Заполнение данных в IE (Value)
« Ответ #3 Отправлен: Ноябрь 21, 2017, 15:57:16 »

Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 351

  • Автор темы
  • Репутация: 2
    • Награды
Re: Заполнение данных в IE (Value)
« Ответ #4, Отправлен: Ноябрь 21, 2017, 16:13:47 »
Я сохранил строку в test.html и всё прекрасно заполняется в IE11 на Win7x86

Решил так же попробывать. (IE11 на Win8.1 x86)
Выдаёт

IE.au3 T3.0-1 Error from function _IELoadWait, $_IESTATUS_ClientDisconnected (-2147417848, Browser has been deleted prior to operation.)
--> IE.au3 T3.0-1 Error from function _IEGetObById, $_IESTATUS_InvalidObjectType
--> IE.au3 T3.0-1 Error from function _IEFormElementSetValue, $_IESTATUS_InvalidDataType

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3653
  • Репутация: 968
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Заполнение данных в IE (Value)
« Ответ #5, Отправлен: Ноябрь 21, 2017, 16:40:06 »
Попробуйте с правами администратора
Код: AutoIt [Выделить]

Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 351

  • Автор темы
  • Репутация: 2
    • Награды
Re: Заполнение данных в IE (Value)
« Ответ #6, Отправлен: Ноябрь 21, 2017, 16:50:21 »
Попробуйте с правами администратора
Код: AutoIt [Выделить]
Да, так работает. Но к сожалению только если по вашему примеру (то есть с отдельным html).
На самой странице по прежнему ничего не заполняет.
IE.au3 T3.0-1 Error from function _IEFormElementSetValue, $_IESTATUS_InvalidObjectType

Я понимаю, что Вам трудно определить без полной "картины".
Там идёт заполнение кредитной карты.
Возможна ли защита какая то на странице?
Но может есть принципиально другой способ определения и ввода ?
« Последнее редактирование: Ноябрь 21, 2017, 16:59:38 от Dk »

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3653
  • Репутация: 968
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Заполнение данных в IE (Value)
« Ответ #7, Отправлен: Ноябрь 21, 2017, 17:16:24 »
Dk  [?]
Цитировать
Возможна ли защита какая то на странице?
Всё может быть. Попробуйте через focus и ControlSend
Код: AutoIt [Выделить]
#RequireAdmin
#include <IE.au3>

$oIE = _IECreate("file:\\" & @ScriptDir & "\test.html")
local $sNummer ="123456789"
$oNummer = _IEGetObjById($oIE, 'cardpan')
_IEAction($oNummer, "focus")
ControlSend("[class:IEFrame]", "", "Internet Explorer_Server1", $sNummer)


Русское сообщество AutoIt

Re: Заполнение данных в IE (Value)
« Ответ #7 Отправлен: Ноябрь 21, 2017, 17:16:24 »

Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 351

  • Автор темы
  • Репутация: 2
    • Награды
Re: Заполнение данных в IE (Value)
« Ответ #8, Отправлен: Ноябрь 21, 2017, 17:48:34 »
Dk  [?]
Цитировать
Возможна ли защита какая то на странице?
Всё может быть. Попробуйте через focus и ControlSend

К сожалению тоже самое.
Попробывал нo  тоже нет.
Очень странно.

Если у Вас есть время, напишите пожалуйста для FireFox тоже самое.

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3653
  • Репутация: 968
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Заполнение данных в IE (Value)
« Ответ #9, Отправлен: Ноябрь 21, 2017, 18:04:32 »
Dk  [?]
Цитировать
для FireFox тоже самое
Это будет совсем не то же самое.

Попробуйте простейший скрипт
Код: AutoIt [Выделить]
Sleep(3000)
Send("123")

Запустите. В течение 3 сек вручную кликните в поле ввода на странице и убедитесь, что Send не работает. Если работает, то можно попробовать имитировать клик мыши в поле ввода.

Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 351

  • Автор темы
  • Репутация: 2
    • Награды
Re: Заполнение данных в IE (Value)
« Ответ #10, Отправлен: Ноябрь 21, 2017, 18:24:27 »
Dk  [?]
Цитировать
для FireFox тоже самое
Это будет совсем не то же самое.

Попробуйте простейший скрипт
Код: AutoIt [Выделить]
Sleep(3000)
Send("123")

Запустите. В течение 3 сек вручную кликните в поле ввода на странице и убедитесь, что Send не работает. Если работает, то можно попробовать имитировать клик мыши в поле ввода.

Да, так работает.

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3653
  • Репутация: 968
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Заполнение данных в IE (Value)
« Ответ #11, Отправлен: Ноябрь 21, 2017, 18:35:43 »
Запускать при загруженной странице
Код: AutoIt [Выделить]
#include <UIAutomate.au3> ; http://autoit-script.ru/index.php/topic,16780.0.html

$oIE = _UIA_GetElementFromHandle(ControlGetHandle("[class:IEFrame]", "", "Internet Explorer_Server1"))
$oEdit = _UIA_GetControlTypeElement($oIE, "UIA_EditControlTypeId", "cardpan", "AutomationId")

; сначала попробуйте так
_UIA_ElementTextSetValue($oEdit, "123456789")

; если не получится, тогда так
;~ _UIA_ElementMouseClick($oEdit)
;~ Send("123456789")


Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 351

  • Автор темы
  • Репутация: 2
    • Награды
Re: Заполнение данных в IE (Value)
« Ответ #12, Отправлен: Ноябрь 21, 2017, 18:50:46 »
Запускать при загруженной странице

К сожалению я скорее всего не успею протестировать сегодня, мне нужно срочно отлучится.
Но я очень благодарен Вам за вашу помощь. Пожалуйста не воспринимайте это как невежество с моей стороны.

Забегу немного наперёд
Вы написали что уже при загруженной странице...
У меня смысл такой, что идёт сначала Логин на сайт, потом нажатия на разные кнопки и потом я попадаю на эту страницу и ставлю галочку (Галочку находит - нажимает) оплатить картой, cтраница остаётся той же не перезагружается, просто появляется это окно ввода.
 Будет ли тогда работать ваш код? Ведь изначально открывается совершенно другая страница и только потом я попадаю туда.

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3653
  • Репутация: 968
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Заполнение данных в IE (Value)
« Ответ #13, Отправлен: Ноябрь 21, 2017, 18:56:44 »
Dk  [?]
Цитировать
Будет ли тогда работать ваш код?
Откуда я знаю, если я не вижу страницы?! :stars:
Код работает с содержимым IE на момент запуска скрипта. И это вы мне должны сказать - работает он или нет.

Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 351

  • Автор темы
  • Репутация: 2
    • Награды
Re: Заполнение данных в IE (Value)
« Ответ #14, Отправлен: Ноябрь 21, 2017, 20:15:38 »
Dk  [?]
Цитировать
Будет ли тогда работать ваш код?
Откуда я знаю, если я не вижу страницы?! :stars:
Код работает с содержимым IE на момент запуска скрипта. И это вы мне должны сказать - работает он или нет.

Супер. Работает!
Огромное спасибо!


Добавлено: Ноябрь 22, 2017, 16:42:33
Запускать при загруженной странице
Здравствуйте. У меня возник дополнительный вопрос по поводу вашего скрипта.
Если я пытаюсь заполнить несколько полей, то остаётся только последнее заполненное поле. То есть скрипт заполняет первое поле, потом стирает его, заполняет следующее итд.
Я пытался сделать вот так.
Код: AutoIt [Выделить]
$oIE = _UIA_GetElementFromHandle(ControlGetHandle("[class:IEFrame]", "", "Internet Explorer_Server1"))
$oEdit = _UIA_GetControlTypeElement($oIE, "UIA_EditControlTypeId", "cardpan", "AutomationId")
_UIA_ElementTextSetValue($oEdit, "12121212")
Sleep(1000)
$oEdit2 = _UIA_GetControlTypeElement($oIE, "UIA_EditControlTypeId", "cardcvc2", "AutomationId")
_UIA_ElementTextSetValue($oEdit2, "999")

Как заполнить к примеру 2 поля?
« Последнее редактирование: Ноябрь 22, 2017, 16:44:05 от Dk »

Русское сообщество AutoIt

Re: Заполнение данных в IE (Value)
« Ответ #14 Отправлен: Ноябрь 21, 2017, 20:15:38 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
7 Ответов
3240 Просмотров
Последний ответ Апрель 15, 2012, 07:21:10
от madmasles
7 Ответов
3208 Просмотров
Последний ответ Апрель 22, 2012, 21:49:37
от nicotino
0 Ответов
2308 Просмотров
Последний ответ Июнь 25, 2012, 16:44:48
от admirko
0 Ответов
1348 Просмотров
Последний ответ Июнь 25, 2012, 22:58:03
от madmasles
25 Ответов
11492 Просмотров
Последний ответ Октябрь 06, 2016, 09:42:19
от mef-t
6 Ответов
2328 Просмотров
Последний ответ Октябрь 13, 2012, 21:47:44
от DarWiM
2 Ответов
2098 Просмотров
Последний ответ Март 26, 2014, 14:34:09
от Evochka Turkova
7 Ответов
1636 Просмотров
Последний ответ Сентябрь 22, 2014, 13:48:45
от vld-k
3 Ответов
1031 Просмотров
Последний ответ Январь 15, 2017, 17:57:46
от Dk
2 Ответов
256 Просмотров
Последний ответ Август 24, 2017, 21:47:08
от alegu