Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba selenium在查找元素时面临的问题_Vba_Selenium_Selenium Webdriver_Web Scraping - Fatal编程技术网

Vba selenium在查找元素时面临的问题

Vba selenium在查找元素时面临的问题,vba,selenium,selenium-webdriver,web-scraping,Vba,Selenium,Selenium Webdriver,Web Scraping,我已经用vba和selenium编写了一个脚本。首先,它进入主页,然后在搜索输入中输入“泵”一词,最后通过勾选复选框将它们全部选中。在选中复选框之前,它工作正常。然而,当到达该行时,它抛出一个错误“element not visible”。显然,我似乎没有做错什么。如果有人指出我在这里遗漏了什么,我会非常高兴: Sub table_data() Dim driver As New WebDriver With driver .Start "chrome", "http://apps.

我已经用vba和selenium编写了一个脚本。首先,它进入主页,然后在搜索输入中输入“泵”一词,最后通过勾选复选框将它们全部选中。在选中复选框之前,它工作正常。然而,当到达该行时,它抛出一个错误“element not visible”。显然,我似乎没有做错什么。如果有人指出我在这里遗漏了什么,我会非常高兴:

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>

找到“泵…”的设备
未选择
以下是链接:


“”

您可以尝试单击标签,而不是单击复选框,如下所示

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

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

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

根据提供的
HTML
sample,
“medicines check all”
不是ID属性的值,而是class name属性的值,因此您应该尝试

.FindElementByClassName("medicines-check-all").Click 
而不是

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

根据提供的
HTML
sample,
“medicines check all”
不是ID属性的值,而是class name属性的值,因此您应该尝试

.FindElementByClassName("medicines-check-all").Click 
而不是

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

“药物检查全部”
不是一个ID,而是一个类名感谢安德森爵士的发现。在类和id之间切换,我有一段时间处于不平衡状态。我想你应该这样回答,这样我才能接受。它是有效的。
“药品检查全部”
不是一个ID,而是一个类名。谢谢安德森爵士的发现。在类和id之间切换,我有一段时间处于不平衡状态。我想你应该这样回答,这样我才能接受。我用你的密码试过了Murthi。它无法解决这个问题。顺便说一句,谢谢你的回答。我用你的密码试过了,默蒂。它无法解决这个问题。顺便说一句,谢谢你的回答。谢谢安德森爵士,谢谢你的有效解决方案。谢谢安德森爵士,谢谢你的有效解决方案。