Что нового

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

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 319
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 319
peremenkin
А про какую программу идет речь? А то мы тут гадаем на кофейной гуще...
 
Автор
P

peremenkin

Новичок
Сообщения
7
Репутация
0
Нашел решение:

Send("{TAB}")
Send("{ENTER}")
 

Vlasssov

Осваивающий
Сообщения
428
Репутация
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 319
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
;...
 

MURDOC

Новичок
Сообщения
8
Репутация
0
Большое спасибо, разобрался :ok:
 
Верх