首页 > 解决方案 > 单击定义为带有 SVG 的 DIV 的按钮,该 SVG 链接到带有 VBA 的路径

问题描述

我正在制作一张 Excel 表格,它从网上商店拍摄照片并将它们放在 Pinterest 上。

当我尝试提交图像 URL 时,我找不到执行点击事件的元素。

来自 Pinterest 的完整 HTML 代码。

<div data-test-id="website-link-submit-button" class="_50 _5a _6e _h _z7 _4q _j" style="height: 100%;">
    <svg class="_u0 _3a _u1 _45" height="20" width="20" viewBox="0 0 24 24" aria-label="Verzenden" role="img">
      <title>Verzenden</title>
      <path d="M6.72 24c.57 0 1.14-.22 1.57-.66L19.5 12 8.29.66c-.86-.88-2.27-.88-3.14 0-.87.88-.87 2.3 0 3.18L13.21 12l-8.06 8.16c-.87.88-.87 2.3 0 3.18.43.44 1 .66 1.57.66"></path>
    </svg>
</div>

我努力了:

Set HTMLButtons = HTMLDoc.getElementsByTagName("div")     
For Each HTMLbutton In HTMLButtons
  Debug.Print HTMLbutton.className
Next HTMLbutton

Set HTMLButtons = HTMLDoc.getElementsByTagName("svg")     
For Each HTMLbutton In HTMLButtons
  Debug.Print HTMLbutton.className
Next HTMLbutton

但他们都没有给我一个可以与 .click 事件结合使用的有用索引。

==================================================== ======================== 编辑

获得上述代码的三个步骤。

在下图中,您将看到三个步骤。第三个是我需要单击的按钮,在检查时会显示上述代码。 在此处输入图像描述

标签: excelvbahtmlweb-scraping

解决方案


我不确定 div 是否可点击,但您可以使用 css 属性 = 值选择器选择 div

ie.document.querySelector("[data-test-id='website-link-submit-button']")

你可以得到svg

ie.document.querySelector("[aria-label=Verzenden]")

你可以得到路径

ie.document.querySelector("[aria-label=Verzenden] > title + path")

您可以点击添加

.click

或者

.FireEvent "onclick"

到上面的结尾,例如

ie.document.querySelector("[aria-label=Verzenden]").click 
ie.document.querySelector("[aria-label=Verzenden] > title + path").FireEvent "onclick"

推荐阅读