“点击”锚元素导航到下一页VBA

时间:2018-06-05 13:19:13

标签: html vba excel-vba click excel

我正在创建一个自动化,通过 VBA 将持续近110页。这些页面具有相同的布局。我需要通过“点击”下一步按钮自动从一个页面转到另一个页面。在每个页面的最后,都有一个“按钮”(列表锚点),上面写着“下一页”。问题是源代码不包含可以很容易引用的ID:

的getElementById( “ID”),点击

我打开浏览器。这很好。我尝试过类似的东西,但它不起作用:

Dim ieDoc As Object
Dim links As Object
Dim link As Object

Set ieDoc = ieApp.Document
Set links = ieDoc.Anchors

For Each link In links
If link.innerHTML = "innerHTML" Then
link.Click
Exit For
End If
Next link

我已经尝试了几乎所有我能从stackoverflow找到的东西,但没有任何东西可以满足我的需求。

这是我试图点击的“下一步按钮”的源代码:

<li class="pager-next"><a title="Next page" href="/fi/tyosuhde-  edut/kayttokohdehakupage=1&amp;service_type=lunch&amp;keywords=&amp;city=&amp;service=&amp;service_areas=&amp;payment_method=&amp;municipality=&amp;service_coupon_code=&amp;items_per_page=50">seuraava ›</a></li>

我认为问题是ClassName是“li”而不是“a”?

有人可以帮助我吗?

修改

找到了解决方法!!:

Set pages = doc.getElementsByTagName("a")


For Each page In pages
    If (page.getAttribute("title") = "Siirry seuraavalle sivulle") Then
    page.Click
    End If
Next page

1 个答案:

答案 0 :(得分:1)

每次刷新都需要继续重置html文档。

刷新后尝试

ieApp.document.querySelector("a[title=""Next page""]").Click

CSS选择器

Selector

有关CSS选择器的更多信息:CSS selectors

修改

在您的情况下,实际的HTML选择器是

appIE.doc.querySelector("a[title = ""Siirry seuraavalle sivulle""]").Click

请注意"a"之后没有空格,您需要在点击之间留出足够的时间以允许加载新页面。