Что нового

Клик по ссылке с одинаковым классом по выбору

bodystyle

Новичок
Сообщения
11
Репутация
0
Здравствуйте! При использовании такого кода у меня получается переход сразу по трем ссылкам (открываются три окна). В html ссылки имеют одинаковый класс <a class="daria-goto-anchor" href="ссылка". Сломал голову... как сделать, чтобы открывалась только вторая ссылка?
Код:
send("{ENTER}")
_IELoadWait($IE)
$collection = _IETagNameGetCollection($IE, 'a')
For $Elem In $collection
If StringInStr($Elem.attributes.getNamedItem('class' ).nodeValue, 'daria-goto-anchor') Then
$Elem.scrollIntoView()
$Elem.focus()
$Elem.click()
			EndIf
		Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
bodystyle [?]
как сделать, чтобы открывалась только вторая ссылка?
Код:
send("{ENTER}")
_IELoadWait($IE)
$collection = _IETagNameGetCollection($IE, 'a')
For $Elem In $collection
	If StringInStr($Elem.attributes.getNamedItem('class' ).nodeValue, 'daria-goto-anchor') Then
		$sUniqueID = _IEPropertyGet($Elem, 'uniqueid')
		ConsoleWrite(StringFormat('!ID: "%s"\n', $sUniqueID))
		; Далее
		; If $sUniqueID = "UniqueID ссылки"  Then
			; $Elem.scrollIntoView()
			; $Elem.focus()
			; $Elem.click()
		; EndIf
	EndIf
Next
 
Автор
B

bodystyle

Новичок
Сообщения
11
Репутация
0
К сожалению в таком варианте не переходит ни по одной ссылке. Ставил UniqueID = 1,2,3 - ни по какой ссылке не переходит.
Код:
send("{ENTER}")
_IELoadWait($IE)
$collection = _IETagNameGetCollection($IE, 'a')
For $Elem In $collection
    If StringInStr($Elem.attributes.getNamedItem('class' ).nodeValue, 'daria-goto-anchor') Then
        $sUniqueID = _IEPropertyGet($Elem, 'uniqueid')
        ConsoleWrite(StringFormat('!ID: "%s"\n', $sUniqueID))
        ; Далее
        If $sUniqueID = "2"  Then
         $Elem.scrollIntoView()
         $Elem.focus()
        $Elem.click()
         EndIf
    EndIf
Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
bodystyle сказал(а):
К сожалению в таком варианте не переходит ни по одной ссылке.
Переходит?

Код:
#include <IE.au3>
$IE = _IECreate('ya.ru')
$collection = _IETagNameGetCollection($IE, 'a')
For $Elem In $collection

   $sUniqueID = _IEPropertyGet($Elem, 'uniqueid')
   ConsoleWrite(StringFormat('!ID: "%s"\n', $sUniqueID))
   ; Далее
   If $sUniqueID = "ms__id9"  Then
	  $Elem.click()
   EndIf
Next


Остальное думаю сообразите!
 
Автор
B

bodystyle

Новичок
Сообщения
11
Репутация
0
К сожалению не переходит по ссылке. Может есть еще какой-то вариант? Это не работает.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
send("{ENTER}")
_IELoadWait($IE)
$collection = _IETagNameGetCollection($IE, 'a')
$item = 0
For $Elem In $collection
	If $Elem.classname And StringInStr($Elem.classname,'daria-goto-anchor') Then
		$item+=1
		If $item = 2 Then
			$Elem.scrollIntoView()
			$Elem.focus()
			$Elem.click()
			ExitLoop
		EndIf
	EndIf
Next
 
Верх