выскабливание сети vba oncick - PullRequest
0 голосов
/ 04 октября 2018

в ссылке https://www.forebet.com/en/predictions-tips-atl%C3%A9tico-madrid-real-madrid-553878 Я хочу загрузить документ, который находится на странице, которую вы нажимаете "uo_t_butt"

Я создаю сценарий с

Sub provaonclick()

Dim objIE As Object
Dim ele As Object
Dim ele1 As Object


Set objIE = CreateObject("internetexplorer.application")
objIE.Visible = True
objIE.navigate "https://www.forebet.com/it/pronostico-per-real-madrid-liverpool-fc-731893"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
Set ele = objIE.document.getElementsByClassName("tabs-ul")(0)
Set ele1 = ele.document.getElementById("uo_t_butt").Click

End Sub

но в объекте ele1 нет ничего

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

Ваша проблема в том, что я управляю кнопкой при помощи javascript.

HTML и javascript - не моя сильная сторона, но мне подходит следующий код:

Sub provaonclick()
Dim objIE As Object

Set objIE = New InternetExplorerMedium
objIE.Visible = True
objIE.navigate "https://www.forebet.com/it/pronostico-per-real-madrid-liverpool-fc-731893"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop

With objIE.Document.getElementById("uo_t_butt")
    .Focus
    .Click
End With

End Sub

". Focus" заставил код работать на меня.Я не знаю, что он делает.

РЕДАКТИРОВАТЬ: На самом деле не использовать set перед "objIE.Document.getElementById (" uo_t_butt "). Click" была разница.

0 голосов
/ 05 октября 2018
Sub provaonclick()
Dim objIE As Object
Dim ele As Object

Set objIE = CreateObject("internetexplorer.application")
objIE.Visible = True
objIE.navigate "https://www.forebet.com/it/pronostico-per-real-madrid-liverpool-fc-731893"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
objIE.document.getElementById("uo_t_butt").Click

Set ele = objIE.document.getElementsByClassName("schema")(1)
Stop
End Sub

извините за все, что я решил, но мой макрос просто нажимает "onclick", но не загружает новую страницу в "ele".В «эле» я нахожу первую открывающуюся страницу, а не нажатую

0 голосов
/ 04 октября 2018

Обычно вы не можете установить элемент и попытаться одновременно щелкнуть по нему.Ключевое слово Set предназначено для назначения ссылки.Необходимо проводить различие между назначением объекта и назначением свойства объекта по умолчанию.Именно этот тип ссылки вы будете передавать.

Это:

Set ele1 = ele.document.getElementById("uo_t_butt").Click

Обычно это вызвало бы ошибку.Странно, что сгенерирован элемент JavaScript, который JScriptTypeInfo.Это, согласно this , скорее всего

скрывает ряд объектов, которые можно найти в JScript.dll.

Удалить действие (.Click) с конца, чтобы установить объект обычным способом, и вам не нужен предварительный объект.Работа с document напрямую с идентификатором.

У меня не было проблем с использованием идентификатора с:

objIE.document.querySelector("#uo_t_butt").Click

Вы можете использовать CSS-селектор атрибут = значение

objIE.document.querySelector("[onclick*='uo']").Click

Это переключается на вкладку «Под / против».

enter image description here

Можно также использовать:

objIE.document.querySelector("[id='uo_t_butt']").Click
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...