Vba硒在寻找元素时面临问题

时间:2017-07-10 06:38:51

标签: vba selenium selenium-webdriver web-scraping

我用vba和selenium编写了一个脚本。首先,它进入主页面然后在搜索输入中放置单词“pump”,最后通过勾选复选框将它们全部选中。在选择复选框之前,它工作正常。但是,在到达该行时,它会抛出错误“元素不可见”。显然,似乎我没有做错任何事。如果有人指出我在这里缺少的东西,我会很高兴:

Sub table_data()

Dim driver As New WebDriver

With driver
    .Start "chrome", "http://apps.tga.gov.au/Prod/devices"
    .get "/daen-entry.aspx"
    .Wait 3000
    .FindElementById("disclaimer-accept").Click
    .Wait 3000
    .FindElementById("medicine-name").SendKeys ("pump")
    .Wait 5000
    .FindElementById("medicines-check-all").Click   ''element not visible here
    .Wait 3000
End With
End Sub

应存储元素的部分的Html元素:

<span id="medicine-widget-header-wrapper">
                            <span id="medicine-widget-header">
                                <label title="Select all">
                                    <input type="checkbox" class="medicines-check-all">
                                    <span id="medicines-header-text">Devices found for 'pump...'</span>
                                </label>
                                <span id="medicine-selected-count">None selected</span>
                            </span>
                        </span>

这是链接:

http://apps.tga.gov.au/Prod/devices/daen-entry.aspx

2 个答案:

答案 0 :(得分:2)

根据提供的HTML示例,"medicines-check-all"不是ID属性的值,而是类名属性的值,因此您应该尝试

.FindElementByClassName("medicines-check-all").Click 

而不是

.FindElementById("medicines-check-all").Click 

答案 1 :(得分:0)

您可以尝试单击下面给出的标签,而不是单击复选框。

.FindElementById("medicines-header-text").Click