Войти

Показать полную графическую версию : [решено] Как нажать на значение из раскрывающегося списка используя функции для IE.


HORRIBLE
29-05-2010, 22:38
Что у меня есть:

#include <IE.au3>
$oIE = _IECreate("www.vkontakte.ru")
WinSetState("В Контакте | Добро пожаловать - Windows Internet Explorer", "", @SW_MAXIMIZE)
_IELoadWait($oIE)
$oDivs = _IETagNameGetCollection ($oIE, "DIV")
For $oDiv In $oDivs
if StringInStr($oDiv.id,"container0") then
$oInputs = _IETagNameGetCollection ($oIE, "INPUT")
For $oInput In $oInputs
if StringInStr($oInput.value,"- Не выбран -") then
;$oInput.value = "мужской"
_IEAction($oInput,"focus")
_IEAction($oInput,"click")
;Sleep(1000)
$oLIs = _IETagNameGetCollection ($oIE, "LI")
$i = 0
ConsoleWrite("Кол-во найденных <LI> = "&@EXTENDED&@CRLF)
For $oLI In $oLIs
$i += 1
ConsoleWrite($i&". $oInputt.value = "&$oLI.value &@CRLF&$i&". $oInputt.innertext = "&$oLI.innertext&@CRLF)
;___________________________________________________________________________________________________ ________
;___________________________не понятки..._____________________________________________________________________
if StringInStr($oLI.innertext,"мужской") then
ConsoleWrite("!!!!!!!!!!!!!!!!!!!! вот он под номером: "&$i&@CRLF)
;$oInput.value = "мужской"
;_IEAction($oLI,"focus")
;_IEAction($oLI,"click")
$iScreenX = _IEPropertyGet($oLI, "screenx")
$iScreenY = _IEPropertyGet($oLI, "screeny")
MouseClick("left",$iScreenX+20, $iScreenY+15)
;ControlClick("[CLASS:IEFrame]", "", "Internet Explorer_Server1", "left", 1, $iScreenX+20, $iScreenY)
EndIf
;___________________________________________________________________________________________________ ___________
;ExitLoop
Next
ExitLoop
EndIf
Next
ExitLoop
EndIf
Next


_IELinkClickByText($oIE,"Зарегистрироваться")


Вся проблема вот начинается с этой строчки: if StringInStr($oLI.innertext,"мужской") then
Все находится, кликается мышкой, а от _IEAction нет ни какого результата.
Где тут камень зарыт ?

Sp01LeR
31-05-2010, 07:26
Где тут камень зарыт ?
Известно где - в самом ОСЛЕ...

Можно так:

#include <IE.au3>

$oIE = _IECreate("vkontakte.ru/reg0")
_IELoadWait ($oIE)
Sleep(2577)
$oInput = _IEGetObjById ($oIE, "sex")
_IEFormElementSetValue ($oInput, "мужской")



З.Ы.: вообще-то там аякса многовато, так что не факт, что косяк именно в ОСЛЕ..

HORRIBLE
31-05-2010, 12:24
Sp01LeR, неа не аботает.
З.Ы.: вообще-то там аякса многовато, так что не факт, что косяк именно в ОСЛЕ.. » Аякс - а каким образом он тут портит всю жизнь ?

HORRIBLE
13-06-2010, 18:38
Может кому понадобится, решено тут: solve (http://autoit-script.ru/index.php?topic=2022.0)




© OSzone.net 2001-2012