Что нового

[Элементы GUI] Работа с ComboBox в IE

mfxp

Новичок
Сообщения
8
Репутация
0
Суть проблемы такова есть интерент страничка открываеться при помощи ie, на страничке есть ComboBox с возможностью выбора таких строк (Выберите учетную запись, PIN1,PIN2,PIN3,PIN4,PIN5). Нужно выбрать (к примеру) PIN1 и в поле для ввода ввести соответсвенно цифровой пин. Подскажите как выбрать в ComboBOX PIN1. И как узнать имя поля для ввода что б в дальнейшем передать в него цифровой пин. И как нажать потом еще и кнопку.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Открываешь в IE эту страницу, нажимаешь F12. Дальше смотри сам.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
mfxp,
А причем здесь [Элементы GUI] в названии темы?

Для того, чтобы Вам помогли, или дайте ссылку, или покажите HTML-код страницы (желательно весь).
 
Автор
M

mfxp

Новичок
Сообщения
8
Репутация
0
Спасибо про F12 не знал помогло. Вообще делаю автоматизированный вход в клиент банк сбербанка. Может у кого есть наработки поделитесь пожалуйста.
 
Автор
M

mfxp

Новичок
Сообщения
8
Репутация
0
Вот html код сам походу не разберусь
Код:
<HEAD><TITLE>VpnKey.local - Аутентификация</TITLE>
<META content="text/html; charset=windows-1251" http-equiv=content-type></HEAD>
<BODY>
<TABLE border=0 cellSpacing=0 cellPadding=0 height=230>
<TBODY>
<TR>
<TD height=230 background=/vpnkeylocal/top-login-l.png width=52></TD>
<TD height=230 background=/vpnkeylocal/top-login-bg.gif width=230><FONT color=green size=5 face=Arial><B>VPNKey-TLS</B></FONT></TD>
<FORM method=post name=fPIN action="">
<TD height=230 background=/vpnkeylocal/top-login-fon.png width=483 align=middle><FONT color=white size=3 face=Arial><B>Учетная запись:</B></FONT>
<SELECT name=pinnum><OPTION selected value=0 ?SELECTED?>-Выберите запись-</OPTION><OPTION value=1>PIN 1</OPTION><OPTION value=2>PIN 2</OPTION><OPTION value=3>PIN 3</OPTION><OPTION value=4>PIN 4</OPTION><OPTION value=5>PIN 5</OPTION></SELECT>

<FONT color=white size=3 face=Arial><B>Код доступа:</B></FONT>
<INPUT value="" type=password name=pin>
<INPUT value=W_LOGIN_FUNC_ID type=hidden name=id>
<FONT color=white size=1 face=Arial>
</FONT>
<INPUT class=butSt src="/vpnkeylocal/h-enter.gif" type=image name=ButN></TD></FORM>
<TD height=230 background=/vpnkeylocal/top-login-r.png width=52></TD></TR></TBODY></TABLE></BODY>
 

madmasles

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


С уважением, ваш Модератор.
 
Автор
M

mfxp

Новичок
Сообщения
8
Репутация
0
Так как все же выбрать из комбобокса????? Может кто подскажет
 
Автор
M

mfxp

Новичок
Сообщения
8
Репутация
0
Как сделать так что бы при выборе из комбобокса происходило определенное действие



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

Спасибо всем за помощь проблема так и не решена. Похоже данная тема ни кому не интересна :(
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
mfxp,
Первый и последний раз вставил в Ваше сообщение нужные теги.

Попробуйте так.
Код:
#include <IE.au3>

Dim $aPIN[4][2] = [[3],['1', 'byValue'],['PIN 3', 'byText'],[5, 'byIndex']]
#cs
	Из кода Вашей страницы:
	<FORM method=post name=fPIN action="">
	...
	<SELECT name=pinnum><OPTION selected value=0 ?SELECTED?>-Выберите запись-</OPTION>
---------
	value = 0 ?SELECTED?
	text = -Выберите запись-
	index = 0
---------
	<OPTION value=1>PIN 1</OPTION>
---------
	value = 1
	text = PIN 1
	index = 1
---------
	...
#ce
$sUrl = @ScriptDir & '\1.html';В 1.html код страницы. Поменяйте на ссылку
$oIE = _IECreate($sUrl)
If @error Then Exit 13
For $j = 1 To 1
	$oForm = _IEGetObjByName($oIE, 'fPIN');<FORM method=post name=fPIN action="">
	If @error Then ExitLoop
	$oSelect = _IEFormElementGetObjByName($oForm, 'pinnum');<SELECT name=pinnum>
	If @error Then ExitLoop
	Sleep(2000)
	For $i = 1 To $aPIN[0][0]
		ConsoleWrite('Select: ' & $aPIN[$i][0] & '; mode: ' & $aPIN[$i][1] & @LF)
		_IEFormElementOptionSelect($oSelect, $aPIN[$i][0], 1, $aPIN[$i][1])
		If @error Then ExitLoop 2
		Sleep(2000)
	Next
	$oInput = _IEFormElementGetObjByName($oForm, 'pin');<INPUT value="" type=password name=pin>
	If @error Then ExitLoop
	_IEFormElementSetValue($oInput, '1234')
	If @error Then ExitLoop
	_IEFormSubmit($oForm)
	If @error Then ExitLoop
Next

If @error Then
	MsgBox(16, 'Error', 'Error')
Else
	MsgBox(64, 'Info', 'OK')
EndIf
;...

Тему в Столе заказов удаляю.
 
Автор
M

mfxp

Новичок
Сообщения
8
Репутация
0
У меня адреса странички нет. Есть на флешки файлик ярыл интернета в него программа шифрования(банка) пишит каждый раз новый генерированный url. Вот я и не пойму как запустить этот файлик из ie. Я просто начинал делать так.
Код:
$PID = ProcessExists("TLSAPP.EXE") 
If $PID Then ProcessClose($PID)  ; проверяю запущена ли программа банка по созданию тунеля
Run("g:\TLSAPP.EXE")
ShellExecuteWait("g:\SSLGATE.URL")

Получаеться что у меня в Combobox'е идет перебор. А надо что б при выборе значения PINNUM в поле PIN вставлялся свой уникальный пин. к примеру к Pin1= 123
Pin2 = 321
Pin3= 312
Pin4=213
pin5=333
я знаю что это можно как то сделать через ini. Но пока не понял как.
Код:
For $i = 1 To $aPIN[0][0]
        ConsoleWrite('Select: ' & $aPIN[$i][0] & '; mode: ' & $aPIN[$i][1] & @LF)
        _IEFormElementOptionSelect($oSelect, $aPIN[$i][0], 1, $aPIN[$i][1])
        If @error Then ExitLoop 2
        Sleep(2000)
    Next
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
mfxp [?]
Вот я и не пойму как запустить этот файлик из ie
Дайте какой-нибудь такой файлик (можно в ЛС).


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

mfxp [?]
знаю что это можно как то сделать через ini. Но пока не понял как.
Попробуйте примерно так.
Код:
#include <IE.au3>

$sProc = 'TLSAPP.EXE'
$sShortcut = 'SSLGATE.URL'
$sIni = 'PIN.ini'
Dim $aSelect[2][2] = [['Now'],['PIN']]
$sDir = @ScriptDir & '\' ;поменяйте на Вашу папку (флешку)
$iPID = ProcessExists($sProc)
While $iPID
	ProcessClose($iPID)
	ProcessWaitClose($iPID, 3)
	$iPID = ProcessExists($sProc)
WEnd
$iPID = Run($sDir & $sProc)
Sleep(100)
If Not $iPID Then Exit 13
$sUrl = IniRead($sDir & $sShortcut, 'InternetShortcut', 'URL', 'Error')
If $sUrl = 'Error' Then Exit 13
ConsoleWrite($sUrl & @LF)
$aSelect[0][1] = IniRead($sDir & $sIni, $aSelect[0][0], $aSelect[0][0], 'Error')
If $aSelect[0][1] = 'Error' Then Exit 13
$aSelect[1][1] = IniRead($sDir & $sIni, $aSelect[1][0], $aSelect[0][1], 'Error')
If $aSelect[1][1] = 'Error' Then Exit 13
ConsoleWrite($aSelect[0][1] & @TAB & $aSelect[1][1] & @LF)

$oIE = _IECreate($sUrl)
If @error Then Exit 13
For $j = 1 To 1
	$oForm = _IEGetObjByName($oIE, 'fPIN')
	If @error Then ExitLoop
	$oSelect = _IEFormElementGetObjByName($oForm, 'pinnum')
	If @error Then ExitLoop
	_IEFormElementOptionSelect($oSelect, $aSelect[0][1], 1, 'byIndex')
	If @error Then ExitLoop
	$oInput = _IEFormElementGetObjByName($oForm, 'pin')
	If @error Then ExitLoop
	_IEFormElementSetValue($oInput, $aSelect[1][1])
	If @error Then ExitLoop
	_IEFormSubmit($oForm)
	If @error Then ExitLoop
Next
If @error Then
	MsgBox(16, 'Error', 'Error')
	_IEQuit($oIE)
	Exit 13
Else
	MsgBox(64, 'Info', 'OK')
EndIf
;...
PIN.ini:
Код:
;Ваши PIN-коды:
[PIN]
1=123
2=456
3=789
4=987
5=654
;Тот, который будем использовать:
[Now]
Now=4
 
Верх