Возникла необходимость отслеживать на сайте
Алгоритм придумал следующий:
1. Формирую массив MatchName, состоящий из названий необходимых для отслеживания матчей:
- Матч 01 - Россия : Саудовская Аравия - Москва «Лужники»
- Матч 07 - Аргентина : Исландия - Москва «Спартак»
- Матч 11 - Германия : Мексика - Москва «Лужники»
2. Поочередно получаю в NodeList дивы с классом "header" (див внутри первого столбец таблицы) и заглядываю внутрь каждого (через innerText), сверяя название текущего матча с первым элементом массива MatchName:
Код:
Код: Выделить всё
<div class="header" ng-bind="product.productName">Матч 01 - Россия : Саудовская Аравия - Москва «Лужники»</div>3. Если название совпало, то каким-то образом[/i] перехожу к соседнему диву "col-sm-9 col-xs-12" (второй таблицы) и также каким-то образом изымаю имя класса внутреннго дива для всех 4 квадратов.
Ключевое - это определить класс "class="categoryBox zeroAvailability" - т.е. если этот класс НЕ "zeroAvailability", то далее кидается алерт.
4. Аналогично пройтись по остальным элементам массива MatchName.
Ну в общем, я начал:
Код:
Код: Выделить всё
Option Explicit
Const READYSTATE_COMPLETE = 4
Const TimeOut = 10000
Const link = "https://tickets.fifa.com/Services/ADService.html?lang=ru"
Dim objNodeList, i, j
Dim MatchName(2) ' массив из искомых названий матчей
MatchName(0) = "Матч 01 - Россия : Саудовская Аравия - Москва «Лужники»"
MatchName(1) = "Матч 07 - Аргентина : Исландия - Москва «Спартак»"
MatchName(2) = "Матч 11 - Германия : Мексика - Москва «Лужники»"
With WScript.CreateObject("InternetExplorer.Application")
.Visible = False
.Navigate(link)
Do
WScript.Sleep TimeOut ' ожидаем загрузку страницы
Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
objNodeList = .document.getElementsByClassName("header") ' получаем в NodeList все элементы с указанным классом
For i = 0 to 2 Step 1
For j = 0 to objNodeList.length Step 1 ' !!! Ошибка: "Требуется объект '[object HTMLCollection]'
' ...
Next
Next
Set objNodeList = Nothing
.Quit
End With
WScript.Quit 0Вопросы следующие:
1. Понять не могу в чем ошибка. objNodeList - это NodeList, который представляет собой массив из Element'ов. Почему я не могу получить длину этого массива?
2. Вопрос касательно общего алгоритма... Может быть как-то задачу попроще можно решить или логика моя пойдет?
3. Если возможно, то подскажите, пожалуйста, каким образом можно перемещаться по соседним div'ам (из пункта 3. алгоритма)?
Спасибо!
.