_IELinkClickByText
Эмулирует клик мыши по ссылке с текстом под-строки совпадающей с указанным.
#include <IE.au3>
_IELinkClickByText(ByRef $o_object, $s_linkText [, $i_index = 0 [, $f_wait = 1]])
Параметры
$o_object | Переменная объекта InternetExplorer.Application, объекта Окна или Фрейма (области) |
$s_linkText |
Текст, отображаемый на веб-странице на который необходимо кликнуть |
$i_index |
[необязательный] Индекс экземпляра, если текст ссылки встречается более одного раза, отсчёт от 0 |
$f_wait |
[необязательный] Указывает, ожидать ли загрузки страницы 0 = Возвратиться немедленно, не ожидая загрузки страницы 1 = (по умолчанию) Ожидать завершения загрузки страницы перед возвратом |
Возвращаемое значение
Успех: | Возвращает -1 |
Ошибка: | Возвращает 0 и устанавливает @error |
@error: | 0 ($_IEStatus_Success) = Нет ошибок |
1 ($_IEStatus_GeneralError) = Общая ошибка | |
3 ($_IEStatus_InvalidDataType) = Неверный тип данных | |
4 ($_IEStatus_InvalidObjectType) = Неверный тип объекта | |
6 ($_IEStatus_LoadWaitTimeout) = Тайм-аут ожидания загрузки | |
7 ($_IEStatus_NoMatch) = Нет совпадений | |
8 ($_IEStatus_AccessIsDenied) = Отказано в доступе | |
9 ($_IEStatus_ClientDisconnected) = Клиент отключен | |
@extended: | Содержит номер неверного параметра |
Примечания
Не все элементы, выдающие себя за ссылки являются таковыми на самом деле.Это обычная практика для присоединения события onClick JavaScript к другим элементам DOM, чтобы имитировать поведение ссылок. Чтобы активировать такие элементы, используйте "клик" с помощью _IEAction().См. также
_IELinkClickByIndex, _IELoadWaitПример
#include <IE.au3>
; ====================================
; Пример 1 - Открывает пример страницы "basic",
; кликает ссылку с текстом "user forum"
$oIE = _IE_Example("basic")
_IELinkClickByText($oIE, "user forum")
; ====================================
; Пример 2 - Открывает страницу AutoIt, проверяет все ссылки на странице
; в цикле и кликает на той, что содержит текст "wallpaper"
$oIE = _IECreate("http://www.autoitscript.com")
$sMyString = "wallpaper"
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
$sLinkText = _IEPropertyGet($oLink, "innerText")
If StringInStr($sLinkText, $sMyString) Then
_IEAction($oLink, "click")
ExitLoop
EndIf
Next