Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Как нажать на значение из раскрывающегося списка используя функции для IE. (http://forum.oszone.net/showthread.php?t=176880)

HORRIBLE 29-05-2010 22:38 1423742

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

#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 1424439

Цитата:

Где тут камень зарыт ?
Известно где - в самом ОСЛЕ...

Можно так:
Код:

#include <IE.au3>

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

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

HORRIBLE 31-05-2010 12:24 1424574

Sp01LeR, неа не аботает.
Цитата:

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

Аякс - а каким образом он тут портит всю жизнь ?

HORRIBLE 13-06-2010 18:38 1433401

Может кому понадобится, решено тут: solve


Время: 18:20.

Время: 18:20.
© OSzone.net 2001-