Что нового

Как кликнуть по ссылке (не по кнопке) в окне?

peremenkin

Новичок
Сообщения
7
Репутация
0
Здравствуйте,
Подскажите пожалуйста, как можно сделать эмуляцию клика по ссылке зная только её текст в активном окне окне?
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
А что разве это не подходит:
Код:
_IELinkClickByText ($oIE, "текст")
 
Автор
P

peremenkin

Новичок
Сообщения
7
Репутация
0
edyapd сказал(а):
А что разве это не подходит:
Код:
_IELinkClickByText ($oIE, "текст")

Это не совсем то, что нужно
Код:
$oIE = _IECreate ()
_IELinkClickByText ($oIE, "текст")

открывает IE, а надо просто выполнить ссылку в программе
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
622
Автор
P

peremenkin

Новичок
Сообщения
7
Репутация
0
Kaster сказал(а):
что значит выполнить ссылку?
Т.е., нажать на ссылку, которую обрабатывает не браузер, а программа.
Вобщем если кликнуть на такую ссылку в ручную - открывается окно с содержимым, это и нужно сделать только на автомате
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
peremenkin
Посмотрите, что показывает AutoIt v3 Window Info на этой ссылке и кликайте потом по ней с помощью ControlClick().
 
Автор
P

peremenkin

Новичок
Сообщения
7
Репутация
0
madmasles сказал(а):
Посмотрите, что показывает AutoIt v3 Window Info на этой ссылке и кликайте потом по ней с помощью ControlClick().

Наверное имеется ввиду Au3Info.exe - так она показывает только ID формы и положение курсора... Т.е., только информацию о форме...

Может есть способ просто кликнуть по определенному тексту?

А как вообще можно узнать саму ссылку или команду по которой открывается окно?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Можно запустить Au3Info.exe
перейти в нем на вкладку Mouse
навести прицел на твою строку и узнать координаты
затем можно воспользоваться
MouseClick("left", x, y)
где x, y и будут координатами из Au3Info.exe
 
Автор
P

peremenkin

Новичок
Сообщения
7
Репутация
0
Yuri сказал(а):
Можно запустить Au3Info.exe
перейти в нем на вкладку Mouse
навести прицел на твою строку и узнать координаты
затем можно воспользоваться
MouseClick("left", x, y)
где x, y и будут координатами из Au3Info.exe

Да нет, это не подходит...
Надо именно знать либо куда щелкнуть (текст), либо что выполнить, чтобы прошла эмуляция клика
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
peremenkin
А про какую программу идет речь? А то мы тут гадаем на кофейной гуще...
 

Vlasssov

Осваивающий
Сообщения
430
Репутация
25
Вот тут вопрос в продолжение..
Надо щелкнуть на ссылке содержащей текст "выйти", но ссылок с таким текстом может быть несколько. Дополнительным фактором, точно идентифицирующим ссылку является то, что первая часть ссылки представляет собой определенный текст. Найти можно перебором... А вот как потом индекс этой ссылке вытащить? То есть надо как-то свойство index посмотреть
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
Vlasssov
Такой вариант подойдёт:
Код:
#include <IE.au3>
Dim $n = 11 ; колличество знаков от начала ссылки
$oIE = _IECreate("http://www.google.ru")
$oLinks = _IELinkGetCollection ($oIE)
For $oLink In $oLinks
	If StringLeft($oLink.href, $n) = "http://news" And $oLink.innerText = "Новости" Then
    _IEAction ($oLink, "click")
	EndIf
Next



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

Или именно индекс нужен?
 

MURDOC

Новичок
Сообщения
8
Репутация
0
Помогите пожалуйста с такой ситуацией.
Нужно организовать скачку по ссылке, в названии которой постоянно только вторая часть слова, первая же часть это дата, которая разумеется со временем меняется.
Вот ссылка http://www.symantec.com/business/security_response/definitions/download/detail.jsp?gid=n95

Нужно организовать скачку по ссылке в которой содержится "-v5i32.exe "
 

axlwor

Скриптер
Сообщения
657
Репутация
147
не проверял
Код:
#include <INet.au3>

Local $str = _INetGetSource('http://www.symantec.com/business/security_response/definitions/download/detail.jsp?gid=n95')
Local $aA = StringRegExp($str, '(http\:\/\/definitions\.symantec\.com\/defs\/\d+-\d+-v5i32.exe)', 3)
If @error = 1 Then
	MsgBox (0,0, "Ссылку не нашли!!!")
	Exit
EndIf
Local $aA1 = StringSplit ($aA[0], "/", 2)
If @error = 1 Then
	MsgBox (0,0, "Файл не нашли!!!")
	Exit
EndIf
Local $hDownload = InetGet ( $aA[0] , @ScriptDir &"/"&$aA1[UBound[$aA1]-1], 1, 1)
Do
    Sleep(250)
Until InetGetInfo($hDownload, 2)

InetClose($hDownload)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
MURDOC
У меня ссылку так находит:
Код:
#include <INet.au3>

Local $sSourse = _INetGetSource('http://www.symantec.com/business/security_response/definitions/download/detail.jsp?gid=n95')
Local $sUrl = StringRegExpReplace($sSourse, '(?s).*?a href="(http://definitions.symantec.com/defs/.*?-v5i32.exe)"?.*', '\1')
If $sUrl Then
	MsgBox(0, '', $sUrl)
Else
	MsgBox(0, '', 'No url')
	Exit
EndIf
;...
 
Верх