Что нового

Помогите заполнить форму (они без name и id)

bazanski

Новичок
Сообщения
9
Репутация
0
Доброго времени суток, я начал работать с autoit недавно, но увы задачу мне дали не легкую, прошу помочь.

Есть страница, в ней поисковая форма, но блин сайт написан странно, у половины элементов нет ни id ни name у тех элементов у которых есть id он равен "*". Так вот мне необходимо ввести текст в поле <input type="text> и <textarea></textarea> я нашел для них какие-то уникальные особенности, а именно у каждого из них есть атрибут placeholder и он для это страницы уникален. Но как получить этот input и textarea используя их placeholderы я не знаю, прошу помогите, а если есть другой способ получить нужные мне поля напишите какой, Заранее спасибо

Вот части html код страницы, необходимые поля для поиска и обработки, нужные мне части я выделил
textarea:
<h2 class="b-part-header b-part-header_member"><i></i>Участник дела</h2>
<div class="b-selected-tags" id="sug-participants">
<div class="tag">
<span class="corners">
<i class="lt"></i>
<i class="t"></i>
<i class="rt"></i>
<i class="r"></i>
<i class="rb"></i>
<i class="b"></i>
<i class="lb"></i>
<i class="l"></i>
</span>
<textarea value="" placeholder="название, ИНН или ОГРН"></textarea>
<i class="b-icon add">
<i></i>
</i>
<div class="b-type-switcher">
<div class="switcher-container">
<div class="b-type-switcher-current">
<div class="top"></div>
<div class="left"></div>
<div class="right"></div>
<span class="type-switcher-text">
<span class="js-current-text">Любой</span>
</span>
<i class="b-icon">
<i></i>
</i>
</div>
<div class="content">
<div class="r">
<div class="l">
<div class="top-padder">
<div class="lt"></div>
<div class="top"></div>
</div>
<ul>
<li class="selected"><input type="radio" checked="checked" value="-1" />Любой</li>
<li><input type="radio" value="0" />Истец</li>
<li><input type="radio" value="1" />Ответчик</li>
<li><input type="radio" value="2" />Третье лицо</li>
<li class="last"><input type="radio" value="3" />Иное лицо</li>
</ul>
</div>
</div>
<div class="bottom-padder">
<div class="lb"></div>
<div class="bottom"></div>
<div class="rb"></div>
</div>
</div>
</div>
</div>
</div>
</div>

input
<h2 class="b-part-header b-part-header_case"><i></i>Номер дела</h2>
<div class="b-selected-tags" id="sug-cases">
<div class="tag">
<span class="corners">
<i class="lt"></i>
<i class="t"></i>
<i class="rt"></i>
<i class="r"></i>
<i class="rb"></i>
<i class="b"></i>
<i class="lb"></i>
<i class="l"></i>
</span>
<input type="text" value="" placeholder="например, А50-5568/08" />
<i class="b-icon add">
<i></i>
</i>
</div>
</div>

помогите написать скрипт для моей проблемы
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
bazanski,
Примерно так.
Код:
#include <IE.au3>
;без проверок на ошибки
$sUrl = @ScriptDir & '\1.html';url
_IEErrorHandlerRegister()
$oIE = _IECreate($sUrl)
$oDiv = _IEGetObjById($oIE, 'sug-participants')
$oTAs = _IETagNameGetCollection($oDiv, 'textarea')
For $oTA In $oTAs
	If StringInStr($oTA.attributes.getNamedItem('placeholder' ).nodeValue, 'ИНН или ОГРН') Then
		$oTA.Value = 'Нашли textarea.'
		ExitLoop
	EndIf
Next
$oDiv = _IEGetObjById($oIE, 'sug-cases')
$oInputs = _IETagNameGetCollection($oDiv, 'input')
For $oInput In $oInputs
	If StringInStr($oInput.attributes.getNamedItem('placeholder' ).nodeValue, 'например') Then
		$oInput.Value = 'И input нашли.'
		ExitLoop
	EndIf
Next
 
Автор
B

bazanski

Новичок
Сообщения
9
Репутация
0
madmasles
Спасибо вроде работает)
А как теперь в найденные поля мне вставить свой текст?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
bazanski [?]
А как теперь в найденные поля мне вставить свой текст?
Код:
;...
$sText_1 = 'Ваш текст, который надо вставить в textarea.'
$sText_2 = 'Ваш текст, который надо вставить в input.'
;...
$oTA.Value = $sText_1
;...
$oInput.Value = $sText_2
;...
 

Yura-H2O

Новичок
Сообщения
35
Репутация
0
поменяйте в скрипте Нашли textarea и И input нашли на то, что Вам нужно ;)
 
Автор
B

bazanski

Новичок
Сообщения
9
Репутация
0
madmasles
madmasles сказал(а):
;...
$sText_1 = 'Ваш текст, который надо вставить в textarea.'
$sText_2 = 'Ваш текст, который надо вставить в input.'
;...
$oTA.Value = $sText_1
;...
$oInput.Value = $sText_2
;...
не работает, я поместил ваш файл 1.html в папку со скриптом, запускаю скрипт, открывается странца и все, тексты не меняются. стоит IE 10, может проблема в этом?
 
Автор
B

bazanski

Новичок
Сообщения
9
Репутация
0
madmasles

Только что запустил на виртуальной машине там ie8 не работает (вообще поля пустые)


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

madmasles
Хотя когда применил скрипт к нужному мне сайту, все сработало, большое спасибо за помощь, тему можно закрыть, я правильно понял если у меня появятся еще вопросы то если их решения нет на форуме, мне создавать новую тему?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
bazanski [?]
если у меня появятся еще вопросы то если их решения нет на форуме, мне создавать новую тему?
Да.



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

bazanski [?]
тему можно закрыть
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Верх