【问题标题】:"Clicking" anchor element to navigate to next page VBA“单击”锚元素导航到下一页 VBA
【发布时间】:2018-06-06 15:58:13
【问题描述】:

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

getElementById("id").Click

我打开浏览器。这很好用。我已经尝试过这样的事情,但它不起作用:

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

【问题讨论】:

    标签: html vba excel click


    【解决方案1】:

    您需要在每次刷新时不断重置 html 文档。

    刷新后尝试

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

    CSS 选择器

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


    编辑:

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

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

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

    【讨论】:

    • @SIM 我仍在尝试了解您的答案。还有其他好的 CSS 资源吗?我阅读了您之前提供的内容。
    • 也试试这两个网站。 This one 很有传奇色彩,也可以考虑看看this site
    • 在我运行程序之前,我收到一个错误:“编译错误。预期:列表分隔符在)”。错误指向标题名称的第一部分:“下一个”。
    • 我忘了把里面的""加倍。尝试编辑。道歉。
    • 现在确实如此。我重新启动了excel和vb,它工作正常。非常感谢!!
    猜你喜欢
    • 2015-01-09
    • 2016-07-12
    • 1970-01-01
    • 2021-05-09
    • 2020-08-15
    • 2019-06-29
    • 1970-01-01
    • 2020-03-14
    • 2017-11-16
    相关资源
    最近更新 更多