Что нового

[Автоматизация] Помогите нажать на кнопку под <span>

Vylan

Новичок
Сообщения
6
Репутация
0
Помогите новичку. А то сам никак не освою.
На сайте http://mirkvartir.ua/offers/editlist
Надо нажать на кнопку "Обновить все"(большая зеленая галочка)

Код:
<span class="chk_all" onclick="chkAllNotice(this)" title="выбрать все"></span>


Логин: [email protected]
Пароль: vy123456
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
Код:
#include <IE.au3>
#include <GUIConstantsEx.au3>


$oIE = _IECreateEmbedded()
$hGUI = GUICreate('', 640, 480)
$hObj = GUICtrlCreateObj($oIE, 10, 10, 620, 460)

GUISetState()
_IENavigate($oIE, 'http://mirkvartir.ua/offers/editlist', 1)
If StringInStr(_IEBodyReadHTML($oIE), 'Авторизация') <> 0 Then
	$oElem = _IEGetObjById($oIE, 'user_login')
	_IEFormElementSetValue($oElem, '[email protected]')
	$oElem = _IEGetObjById($oIE, 'user_password')
	_IEFormElementSetValue($oElem, 'vy123456')
	$oElem = _IEGetObjById($oIE, 'user_remember')
	;_IEAction($oElem, 'click') ; убрать комментарий если нужно запоминать сессию на сайте
	$oElem = _IEGetObjById($oIE, 'submit')
	_IEAction($oElem, 'click')
	_IELoadWait($oIE)
EndIf

$oSpan = _IETagNameGetCollection($oIE, 'span')
For $oObj In $oSpan
	If $oObj.className = 'chk_all' Then
		_IEAction($oObj, 'click')
		ExitLoop
	EndIf
Next

While 1
	Local $nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			ExitLoop
	EndSwitch
WEnd
Exit
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Vylan,
Мой вариант.
Код:
#include <IE.au3>

Local $iErr = 1, $sUrl = 'http://mirkvartir.ua/offers/editlist', $oTmpObj

Do
	$oIE = _IECreate($sUrl)
	If @error Then ExitLoop
	If _IEPropertyGet($oIE, 'locationurl') = 'http://mirkvartir.ua/users/login' Then
		$oTmpObj = _IEGetObjById($oIE, 'user_login')
		If @error Then ExitLoop
		If Not _IEFormElementSetValue($oTmpObj, '[email protected]') Then ExitLoop
		$oTmpObj = _IEGetObjById($oIE, 'user_password')
		If @error Then ExitLoop
		If Not _IEFormElementSetValue($oTmpObj, 'vy123456') Then ExitLoop
		$oTmpObj = _IEGetObjById($oIE, 'user_remember')
		If @error Then ExitLoop
		If Not $oTmpObj.checked Then $oTmpObj.checked = True
		$oTmpObj = _IEGetObjById($oIE, 'submit')
		If @error Then ExitLoop
		_IEAction($oTmpObj, 'click')
		If @error Then ExitLoop
		If Not _IELoadWait($oIE) Then ExitLoop
	EndIf
	$oTmpObj = _IEGetObjById($oIE, 'notice_menu')
	If @error Then ExitLoop
	$oTmpObj = _IETagNameGetCollection($oTmpObj, 'span')
	If @error Then ExitLoop
	For $oSpan In $oTmpObj
		If $oSpan.GetAttribute('classname') == 'chk_all' Then
			_IEAction($oSpan, 'click')
			If @error Then ExitLoop
			If Not _IELoadWait($oIE) Then ExitLoop
			$iErr = 0
			ExitLoop
		EndIf
	Next
	$oTmpObj = 0
	$oSpan = 0
Until 1
ConsoleWrite('$iErr: ' & $iErr & @LF)
 
Автор
V

Vylan

Новичок
Сообщения
6
Репутация
0
[Автоматизация] Re: [Автоматизация] Помогите нажать на кнопку под <span>

Спасибо за помощь.
Буду разбираться с className = даже не знал что так можно.
 
Верх