Что нового

Проблема с заполнением <textarea> на сайтах типа UCOZ

nsgenn

Новичок
Сообщения
52
Репутация
1
Привет!

Пытался автоматически заполнить форму добавления файлов на сайте UCOZ, но видимо хитровыдуманно у них сделана организация <textarea> элемента.
Что я уже только не пробовал.

_IEFormElementSetValue - не добавляет текст, ошибок нет.
_IEPropertySet - тоже пробовал с разными параметрами, с outertext добавляет текст сразу после надписи: Краткое описание или полное описание.
Потом получал список вообще всех элементов типа AREA и заполнял или типа ТЕКСТ и заполнял их.
http://screeny.ru/52fa002bf69e6e0c6400134b​

Т.к. через исходник сложно разобраться что есть что, я начал дебажить страницу, чтобы узнать точный ID элемента. Оказалось там встроен <iframe> , но никаких элементов внутри не нашел, кроме <body contenteditable> но даже _IEBodyWriteHTML не дал результатов.

Дальше в поисках решения проблемы просмотрел тему: "кнопка под SPAWN", и решил добавлять текст именно с тегами <html> (Панель HTML кодов).
http://screeny.ru/52fa032df69e6e0c640014fa​
Нажал на эту кнопку, после отладчиком обнаружил что именно после нажатия это поле идентифицируется как <Textarea>, но добавить туда текст снова не получилось. Я в отчаянье (

зы. скрины не прилепились
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Как вариант -
Код:
#include <IE.au3>

$oIE = _IEAttach('<title>')
$oBrief = _IEGetObjByName($oIE, 'idContentoEditbrief')
$oMessage = _IEGetObjByName($oIE, 'idContentoEditmessage')

_SetVal($oBrief, "— А в чём сила, брат?" & @CRLF)
Sleep(2500)
_SetVal($oMessage, "— А вот в чём — в деньгах вся сила, брат! Деньги правят миром, и тот сильней, у кого их больше." & @CRLF)
Sleep(2500)
_SetVal($oBrief, "— Ну хорошо, вот много у тебя денег. И че ты сделаешь?" & @CRLF)
Sleep(2500)
_SetVal($oMessage, "— Куплю всех!" & @CRLF)
Sleep(2500)
_SetVal($oBrief, "— И меня?" & @CRLF)

Func _SetVal($o_Obj, $s_Val)
	$o_Obj.focus
	$o_Rng = $o_Obj.document.selection.createRange()
	$o_Rng.Text = $s_Val
EndFunc ;==>_SetVal
 
Автор
N

nsgenn

Новичок
Сообщения
52
Репутация
1
Garrett

Все бы хорошо, однако фокус не устанавливается, поэтому текст вставляется перед HTML кодом, если установить фокус мышью в brief или message, то текст туда сажается.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
nsgenn
Что пишет этот код?
Код:
#include <IE.au3>

$oIE = _IEAttach('<title>')
$oIframes = _IETagNameGetCollection($oIE, 'iframe')
For $oIframe In $oIframes
	ConsoleWrite($oIframe.name & @CRLF)
Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Извиняюсь, поправил.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Сначала зайдите в Каталог файлов -> Добавить материал, потом запустите скрипт.
Код:
$oIE = _IEAttach('Здесь должен быть текст из тега TITLE')

Вот то, что он должен показать.
[box]idFixZIndexoEditbrief
idContentoEditbrief
idContentWordoEditbrief
idFixZIndexoEditmessage
idContentoEditmessage
idContentWordoEditmessage[/box]
 
Автор
N

nsgenn

Новичок
Сообщения
52
Репутация
1
Garrett

Да, именно такие ID получает.
 
Автор
N

nsgenn

Новичок
Сообщения
52
Репутация
1
http://www.youtube.com/watch?v=LgTkITdZgjI&feature=youtu.be


Добавлено:
Сообщение автоматически объединено:

ладно, спасибо за потраченное время, может дотумкаю еще чего-нибудь
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
У вас IE > 8?
Попробуйте совместимость включить.
"Сервис" --> "Параметры просмотра в режиме совместимости".
 
Автор
N

nsgenn

Новичок
Сообщения
52
Репутация
1
Garrett [?]
У вас IE > 8?Попробуйте совместимость включить."Сервис" --> "Параметры просмотра в режиме совместимости".

NO.
v.10.0.9200.

На какой версии точно работает?
зы. может есть еще какой-нибудь способ установки фокуса?


Добавлено:
Сообщение автоматически объединено:

Все! Ура!
воспользовался:

_IEAction($o_Obj, "focus")



Добавлено:
Сообщение автоматически объединено:


Последний вопрос по этой теме: где можно почитать про управлению объектом через свойства:

Код:
$o_Obj.document.selection.createRange()
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
nsgenn [?]
Последний вопрос
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


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