2016-11-07 3 views
0

Я не знаком с html, но я бы хотел нажать на кнопку и сделать это из vba. Я прочитал учебник о том, как искать информацию на веб-странице HTML из vba, а затем я попробовал ее для своего случая, но это немного другое.Как перейти к пункту td и нажать на него

Интересная часть HTML кода заключается в следующем: html code

То, что я сделал это, чтобы сначала определить часть, которую я мог бы получить доступ легко. Я думал, что форма, которая имеет уникальный результат, была хорошим началом.

Тогда в этом виде появляется только одно имя класса «resultRow», поэтому я также использовал его в свою пользу. Теперь я нахожусь в правой таблице и вижу, что независимо от элемента, на который я нажимаю, результат onlcick тот же. Поэтому я выбираю случайный элемент (номер 4) и нажимаю на него.

К сожалению, я сделал что-то неправильно.

Вот мой код

Sub my_code (ByVal faul As String) 

Dim IE As Object 
Dim IEAPuMA As Object 
Dim side As String 
Dim IEDok As HTMLDocument 
Dim Element As IHTMLElement 
Dim Form As HTMLFormElement 

Set IEAPuMA = CreateObject("InternetExplorer.Application") 
IEAPuMA.Visible = False 
side = "my_website" 
IEAPuMA.navigate side 
Do While IEAPuMA.readyState <> 4 
Loop 

IEAPuMA.Visible = False 
Set IEDok = IEAPuMA.document 
Do: Loop Until IEDok.readyState = "complete" 
'Schleife über alle Elemente der Seite 
Set Form = IEDok.all("result") 
Form.getElementsByClassName("resultRow").Item(4).Click 


End Sub 

может кто-то помочь мне? И, может быть, предложить более простой способ достичь этого?

ответ

0
Form.getElementsByClassName("resultRow") 

возвращает коллекцию всех элементов с классом соответствия, так что это даст вам коллекцию tr элементов. Если вы хотите получить доступ к отдельным элементам td, вам нужно что-то вроде:

Dim tr, tds 

Set tr = Form.getElementsByClassName("resultRow")(0)'<<first match 

Set tds = tr.getElementsByTagName("td") 

tds(4).click '<< fifth cell 
+0

Спасибо Тим. Я проверю это и опубликую здесь результат :) – Seb

Смежные вопросы