Что нового

Yandex

petr

Новичок
Сообщения
4
Репутация
0
Помогите разобраться почему-то выполняется только до 2 страницы, не могу понять почему так по моей логике должно выполнятся до 20 в зависимости от переменной i
Код:
#include <IE.au3>
#include <array.au3>

HotKeySet("{F6}", "_Exit")

$oIE = _IECreate('https://yandex.ru/search/?text=зубр')
$i = 0

Do
   Dim $oLinks = _IELinkGetCollection($oIE)
   Dim $sMyString = "дальше"
   For $oLink In $oLinks
      Dim $sLinkText = _IEPropertyGet($oLink, "innerText")
      If StringInStr($sLinkText, $sMyString) Then
         _IELoadWait ($oIE)
         _IEAction($oLink, "click")
         ConsoleWrite("get" & $i & @CRLF)
      EndIf
   Next

Until $i = 20

Func _Exit()
   Exit
EndFunc
 

gunter123

Продвинутый
Сообщения
159
Репутация
69
Потому что переменная $i в цикле не меняется:

Код:
...
$i = $i + 1
Until $i = 20
...
 
Автор
P

petr

Новичок
Сообщения
4
Репутация
0
Ок, $i = $i+1 пропустил, но тогда по моей логике скрипт должен кликать по ссылке дальше бесконечно, но он кликает один раз и находясь на второй странице не кликает. Почему так?
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Вероятно, создаётся новый объект. Пробуйте так
Код:
#include <IE.au3>

HotKeySet("{F6}", "_Exit")

_IECreate('https://yandex.ru/search/?text=зубр')
$hWnd = WinGetHandle("[Class:IEFrame]")

For $i = 1 To 20
  $oIE = _IEAttach($hWnd, "embedded")
  _IELinkClickByText($oIE, "дальше", 0, 0)
  _IELoadWait($oIE, 555, 3333)
  $oIE = 0
Next

Func _Exit()
  Exit
EndFunc
 
Автор
P

petr

Новичок
Сообщения
4
Репутация
0
Огонь, работает. Спасибо!
 
Верх