EXCEL VBA Selenium 单击 svg/xlink:href

问题描述 投票:0回答:1

所以我昨天开始使用 Selenium (Chromedriver),虽然我只想自动化一些简单的事情,但我的知识和我们正在使用的网络报告的网络开发人员让我很头疼。

这是带有可点击 svg 的 html 代码。最棒的是,ID 不是静态的。

Picture of the the buttons (svgs)

<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 的报道。

感谢任何帮助

excel vba selenium-webdriver
1个回答
0
投票

而不是

.FindElementsByClass("dx-item-content dx-tile-content")

需要一个类并且正在传递 2 个类,请使用 CSS 选择器

.FindElementByCss(".dx-item-content.dx-tile-content")
© www.soinside.com 2019 - 2024. All rights reserved.