Что нового

[Автоматизация] _IELinkClickByText не находит ссылку

vibor

Новичок
Сообщения
13
Репутация
0
Есть
Код:
<A href="index.php?action=members&amp;where=work&amp;type=7">Избранное</A>
Код:
_IELinkClickByText($oIE, "Избранное")
MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '@error' & @CRLF & @CRLF & 'Return:' & @CRLF & @error) ;### Debug MSGBOX

Возвращает ошибку 7 ($_IEStatus_NoMatch) = Нет совпадений.
Что необходимо для корректной работы?
 

JIereHga2010

Новичок
Сообщения
68
Репутация
0
Может легче так?
Код:
$oIE = _IECreate ('www.и т.д. и т.п')
$oLinks = _IETagNameGetCollection ($oIE, 'A')
For $oLink in  $oLinks
   If $oLink.InnerText == 'Избранное' Then
	  _IEAction ($oLink, 'click')
   EndIf
Next
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Та не, у него, скорее всего, ссылка во фрейме и из основного IE не видится.
Но он полный код страницы или ссылку на свой сайт не даёт, ну и мы ничего сказать не можем.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
vibor
Если вы хотите, чтобы вам помогли решить ваш вопрос, предоставьте пожалуйста тестовый аккаунт!
 
Автор
V

vibor

Новичок
Сообщения
13
Репутация
0
Garrett сказал(а):
vibor
Если вы хотите, чтобы вам помогли решить ваш вопрос, предоставьте пожалуйста тестовый аккаунт!
Регистрация завязана на WebMoney. Пока жду подтверждения документов для создания кошелька на запасном WMID.


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

Код с тестовым аккаунтом.
Код:
#include "IE.au3"
#include "File.au3"

Global $Paused
HotKeySet("!p", "TogglePause")

Global $oIE = _IECreate("http://www.web-ip.ru/")
$oWMID = _IEGetObjByName($oIE, "wmid")
_IEFormElementSetValue($oWMID,"930834668440")
$oPass = _IEGetObjByName($oIE, "pass")
_IEFormElementSetValue($oPass, "mytest")
$oSubmit = _IEGetObjByName($oIE, "subent")
_IEAction($oSubmit, "click")
$oKanswer=_IEGetObjByName($oIE, "kanswer")
$oP = _IEFormElementSetValue($oKanswer, "Кузмина")
Beep()
TogglePause()
Linker("Задания")
_IELinkClickByText($oIE, "Избранное")
MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '@error' & @CRLF & @CRLF & 'Return:' & @CRLF & @error) ;### Debug MSGBOX

Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc

Func Linker( $sInscription)
$oLinks=_IELinkGetCollection($oIE)
For $oLink In $oLinks
	$sLinkText=_IEPropertyGet($oLink, "outertext")
	If StringInStr($sLinkText,$sInscription) Then
		_IEAction($oLink,"click")
		ExitLoop
	EndIf
Next
Return $oIE
EndFunc
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
vibor
Что необходимо для корректной работы?
Код:
#include "IE.au3"
#include "File.au3"

Global $Paused
HotKeySet("{ESC}", "_TogglePause")

$oIE = _IECreate("http://www.web-ip.ru/")
$oForm = _IEFormGetCollection($oIE, 0)

$oWMID = _IEFormElementGetObjByName($oForm, "wmid")
$oPass = _IEFormElementGetObjByName($oForm, "pass")
$oSubmit = _IEFormElementGetObjByName($oForm, "subent")

_IEFormElementSetValue($oWMID,"930834668440")
_IEFormElementSetValue($oPass, "mytest")
_IEAction($oSubmit, "click")
_IELoadWait($oIE)

;===========================================
;	контрольный вопрос требуется не всегда
;===========================================
; $oForm = _IEFormGetCollection($oIE, 2)
; $oKanswer = _IEFormElementGetObjByName($oForm, "kanswer")
; _IEFormElementSetValue($oKanswer, "Кузмина")

Beep()
_TogglePause()

_Linker($oIE, "Задания")
_Linker($oIE, "Избранное")

Func _TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc

Func _Linker(ByRef $oObj, $sInscription)
   $oLinks = _IELinkGetCollection($oObj)
   For $oLink In $oLinks
	   If _IEPropertyGet($oLink, "innertext") == $sInscription Then
		   _IEAction($oLink, "click")
		   _IELoadWait($oObj)
		   ExitLoop
	   EndIf
   Next
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
vibor [?]
Есть вопрос, напрямую не относящийся к скрипту

Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.
 
Верх