所以我昨天开始使用 Selenium (Chromedriver),虽然我只想自动化一些简单的事情,但我的知识和我们正在使用的网络报告的网络开发人员让我很头疼。
这是带有可点击 svg 的 html 代码。最棒的是,ID 不是静态的。
<div class="dx-item dx-tile" style="width: 65px; height: 65px; left: 130px; top: 0px;" id="dx-517927a9-664c-6b1f-71fe-1c9d526443c9">
<div class="dx-item-content dx-tile-content">
<svg>
<use xlink:href="#dx-dashboard-export-to-excel"></use>
</svg>
</div>
</div>
我尝试复制 CSS 选择器和 XPath,但它始终包含 ID。
我也尝试过这种方法,因为它在其他场合效果很好。左边还有另外 2 个 svg 元素。
Dim List As Selenium.WebElements
Set List = Chrome.FindElementsByClass("dx-item-content dx-tile-content")
If List Is Nothing Then
MsgBox "failed."
' Exit Sub
End If
List(3).Click
但它显然不起作用,因为它一次只能包含 1 个类。
我也尝试过:
Chrome.FindElementByCss("[svg = '#dx-dashboard-export-to-excel']").Click
也尝试过 xlink:href = 但也没用
Chrome.FindElementsByTag ("svg")
但到目前为止还没有任何效果。
我已经看过所有定位器策略,但我太菜鸟了,而且似乎没有太多关于 VBA 的报道。
感谢任何帮助
而不是
.FindElementsByClass("dx-item-content dx-tile-content")
需要一个类并且正在传递 2 个类,请使用 CSS 选择器
.FindElementByCss(".dx-item-content.dx-tile-content")