Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] [Решено]_IEFormElementRadioSelect его использование в нестандартных ситуаиях

Ответить
Настройки темы
[решено] [Решено]_IEFormElementRadioSelect его использование в нестандартных ситуаиях

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


Сообщения: 25
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: DjinnKo
Дата: 17-07-2009
Здравствуйте, подскажите плз как выделить нежный radio в IE, если html не стандартный немного:
Код: Выделить весь код
<td width="10"><input name="quiz_answer" value="7" type="radio"></td>
            <td>When a bet would be more than one third of the chips left in your stack.</td>
Получается что:
Код: Выделить весь код
</td>
            <td>
Не позволяет правильно работать с:
Код: Выделить весь код
_IEFormElementRadioSelect
Пробывал вырезать регулярным выражением:
Код: Выделить весь код
$regexp = StringRegExp($HTML, 'type=\"radio\">(.*?)' & FileReadLine($file_handle, $k+2), 0)
Не сработало подскажите плз, как быть ?

P.S. в FileReadLine($file_handle, $k+2), 0) - находится строка: "When a bet would be more than one third of the chips left in your stack."

Заранее благодарен.

Отправлено: 15:01, 11-07-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


DjinnKo, как насчет полного HTML/линка + подробное описание того, ЧТО нужно получить в результате?

-------
Как сообщить о том, что моя проблема решена?
не оказываю техподдержку через ПМ/ICQ/Mail - для этого есть форум


Отправлено: 15:53, 11-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


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


Сообщения: 25
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата amel27:
DjinnKo, как насчет полного HTML/линка + подробное описание того, ЧТО нужно получить в результате? »
Извините, но полный линк не выйдет, вот щас дам пример и что надо сделать:

HTML код: Выделить весь код
<FORM method=post encType=multipart/form-data> <DIV class=question> <P><B>Question</B></P></DIV> <DIV class=answers> <TABLE cellSpacing=0 cellPadding=5 width="100%" border=0> <TBODY> <TR> <TD width=10><INPUT type=radio value=15 name=quiz_answer></TD> <TD>You fold.</TD></TR> <TR> <TD><INPUT type=radio value=18 name=quiz_answer></TD> <TD>You bet.</TD></TR> <TR> <TD><INPUT type=radio value=3 name=quiz_answer></TD> <TD>You check.</TD></TR> <TR> <TD></TD> <TD><INPUT type=submit value=Next></TD></TR></TBODY></TABLE></DIV><INPUT type=hidden value=2 name=quiz_action> <INPUT type=hidden value=50778310 name=quiz_aid> </FORM>

Это форма, собственно в ней находятся 3 Radio, мне соответственно надо выделить правильный вариант ответа и отправить форму. (форма в девственном виде)
Я решил сделать чек регуляркой:
Код: Выделить весь код
value=(\d+)\sname=quiz_answer>.*?You check.
приблизительно такой регуляркой... но чет регулярки худо работают в autoit...
ну а потом с нужным value с помощью
Код: Выделить весь код
_IEFormElementRadioSelect
выбрать ответ и отправить форму...

Последний раз редактировалось DjinnKo, 11-07-2009 в 17:04.


Отправлено: 16:23, 11-07-2009 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата DjinnKo:
чет регулярки худо работают в autoit »
необоснованный наезд, читайте матчасть...
Код: Выделить весь код
$sHTML = FileRead("c:\TEST\test.html")
$sText = "You check."
$aVals = StringRegExp($sHTML, "(?im)^" & _
    "<TR>[^<]*" & _
        "<TD\b[^>]*>[^<]*" & _
            "<INPUT\b[^>]*?\bValue=(\d+)[^>]*>[^<]*" & _
        "</TD>[^<]*" & _
        "<TD\b[^>]*>\Q"& $sText &"\E</TD>[^<]*" & _
    "</TR>", 3)

If IsArray($aVals) Then ConsoleWrite("Value: "& $aVals[0] &@CRLF)
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:43, 11-07-2009 | #4


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


DjinnKo, пример:

Код: Выделить весь код
Opt('MustDeclareVars',      1)
Opt('TrayIconDebug',        1)

#include <IE.au3>

HotKeySet('{ESC}', '_Pro_Exit'); ESC - закрыть скрипт

Local $oIE, $oForm, $i

$oIE = _IECreate('http://testing.ru/1.htm'); открытие ie окна и старницы 'http://testing.ru/1.htm'
$oForm = _IEFormGetCollection($oIE, 0); поиск и запись в переменную идентификатора (указаетля) первого найденного элемент form на старнице

For $i = 1 To 5
    ToolTip('перебор '& $i & ' из 5', 10, 100, 'Выбор radio # 3')
    _IEFormElementRadioSelect($oForm, 2, 'quiz_answer', 1, 'byIndex'); выбор радио кнопки с иминем 'quiz_answer' и индексом № 2 (среди всех лементов с иминем 'quiz_answer', этот элемент, по порядку расположения на странице, будет 3-им)
    Sleep(1000)

    ToolTip('перебор '& $i & ' из 5', 10, 100, 'Выбор radio # 2')
    _IEFormElementRadioSelect($oForm, 1, 'quiz_answer', 1, 'byIndex'); выбор радио кнопки с иминем 'quiz_answer' и индексом № 1 (среди всех лементов с иминем 'quiz_answer', этот элемент, по порядку расположения на странице, будет 2-им)
    Sleep(1000)

    ToolTip('перебор '& $i & ' из 5', 10, 100, 'Выбор radio # 1')
    _IEFormElementRadioSelect($oForm, 0, 'quiz_answer', 1, 'byIndex'); выбор радио кнопки с иминем 'quiz_answer' и индексом № 0 (среди всех лементов с иминем 'quiz_answer', этот элемент, по порядку расположения на странице, будет 1-им)
    Sleep(1000)
Next

Func _Pro_Exit()
    Exit
EndFunc
Цитата DjinnKo:
если html не стандартный немного »
имхо, radio кнопки в полне стандартные ...

DjinnKo, это очень верный и дельный совет:
Цитата amel27:
как насчет полного HTML/линка + подробное описание того, ЧТО нужно получить в результате? »
а под словом полного - имхо, подразумевается весь html код страницы, как миниму от текга <body> и до </body>. Мож, там какие особенности ...

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:53, 11-07-2009 | #5


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


Сообщения: 25
Благодарности: 1

Профиль | Отправить PM | Цитировать


amel27, ты мне очень помог, сенкс все прекрасно работает... я таких регулярок раньше не писал... или синтаксис другой или я не сталкивался просто с таким...

Можете плз еще помочь мне с регуляркой: нужно сохранить все названия, с этого:
HTML код: Выделить весь код
<FORM method=post encType=multipart/form-data> <DIV class=question> <P><B>Question</B></P></DIV> <DIV class=answers> <TABLE cellSpacing=0 cellPadding=5 width="100%" border=0> <TBODY> <TR> <TD width=10><INPUT type=radio value=15 name=quiz_answer></TD> <TD>You fold.</TD></TR> <TR> <TD><INPUT type=radio value=18 name=quiz_answer></TD> <TD>You bet.</TD></TR> <TR> <TD><INPUT type=radio value=3 name=quiz_answer></TD> <TD>You check.</TD></TR> <TR> <TD></TD> <TD><INPUT type=submit value=Next></TD></TR></TBODY></TABLE></DIV><INPUT type=hidden value=2 name=quiz_action> <INPUT type=hidden value=50778310 name=quiz_aid> </FORM>

нужно сохранить:
Цитата:
You fold.
You bet.
You check.

Еще раз всем сенкс

и подскажите плз как выбрать вариант любой КРОМЕ того который нашелся с помощью регулярного выражения ?

Отправлено: 01:18, 12-07-2009 | #6


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата DjinnKo:
нужно сохранить все названия »
аналогично:
Код: Выделить весь код
$sHTML = FileRead("c:\TEST\test.html")
$aVals = StringRegExp($sHTML, "(?im)^" & _
    "<TR>[^<]*" & _
        "<TD\b[^>]*>[^<]*" & _
            "<INPUT\b[^>]*?\bValue=(\d+)[^>]*>[^<]*" & _
        "</TD>[^<]*" & _
        "<TD\b[^>]*>([^<]*)</TD>[^<]*" & _
    "</TR>", 3)

If IsArray($aVals) Then
    For $i=0 To UBound($aVals)-1 Step 2
        ConsoleWrite("Value: "& $aVals[$i]   &@CRLF)
        ConsoleWrite("Text : "& $aVals[$i+1] &@CRLF&@CRLF)
    Next
EndIf
Цитата DjinnKo:
как выбрать вариант любой КРОМЕ того который нашелся »
не понял вопрос - первый попавшийся что-ли?... есть массив ВСЕХ - фильтруйте стандартными средствами

Отправлено: 08:32, 12-07-2009 | #7


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


Сообщения: 25
Благодарности: 1

Профиль | Отправить PM | Цитировать


amel27, сенкс, ну вот я знаю как посчету их любой выбрать:
Цитата:
_IEFormElementRadioSelect ($oForm, Random(0,2,1), "quiz_answer", 1, "byIndex")
все, в принципе второй вопрос отпадает после первого вопроса...

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

Большой спасибо Вам

Отправлено: 12:59, 12-07-2009 | #8


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


Сообщения: 25
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо, вопросов нет все решено

Всем очень благодарен

Отправлено: 18:24, 16-07-2009 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] [Решено]_IEFormElementRadioSelect его использование в нестандартных ситуаиях

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Solid Alliance Crazy Earphones: наушники для любителей нестандартных решений OSZone News Новости информационных технологий 7 25-10-2009 11:22
Получение информации из нестандартных контроллов r35p3ct AutoIt 2 21-09-2009 09:54
Помогите разобраться с _IEFormElementRadioSelect Twix1124 AutoIt 3 29-05-2009 16:40
Разное - Создание НЕСТАНДАРТНЫХ ПАПОК. belohortvladimir Microsoft Windows 2000/XP 7 03-12-2008 22:04
подключение нестандартных устройств к ПК uncanny2008 Microsoft Windows 2000/XP 2 05-08-2008 15:21




 
Переход