Html VBA Web抓取:单击具有动态生成的名称和ID的按钮
我正在做一个网页抓取项目,大部分工作正常,但在点击一个按钮时遇到了问题。问题在于HTML中按钮的名称和ID是动态创建的:Html VBA Web抓取:单击具有动态生成的名称和ID的按钮,html,vba,web-scraping,Html,Vba,Web Scraping,我正在做一个网页抓取项目,大部分工作正常,但在点击一个按钮时遇到了问题。问题在于HTML中按钮的名称和ID是动态创建的: <td colspan="1" rowspan="3" valign="middle"><input type="submit" name="11|2328342|429156$Link" value="Select" id="11|2328342|429156_Link" /></td> 因此,我不能使用getElementByI
<td colspan="1" rowspan="3" valign="middle"><input type="submit" name="11|2328342|429156$Link" value="Select" id="11|2328342|429156_Link" /></td>
因此,我不能使用getElementById或getElementByClassName,因为Id和名称随着每次迭代而改变
是否有其他方法引用然后单击此按钮?我正在使用selenium VBA。看看这段代码(我用过CSS选择器) 至于IE,你可以这样使用它
Sub Test()
Dim ie As New InternetExplorer
With ie
.Visible = True
.Navigate2 "file:///C:/Sample.html"
While .Busy Or .readyState <> READYSTATE_COMPLETE: DoEvents: Wend
.document.querySelector("input[value='Select']").Click
End With
End Sub
子测试()
Dim ie成为新的InternetExplorer
与ie
.Visible=True
.导航2“file:///C:/Sample.html"
当.Busy或.readyState时readyState\u完成:DoEvents:Wend
.document.querySelector(“输入[value='Select']”)。单击
以
端接头
您尝试过使用XPath吗?您使用什么(selenium或IE或任何其他方法?感谢您的回复。这是在一台工作PC上,因此我只能使用IE,不能使用SeleniumHanks Yasser,但该代码似乎不起作用。我得到一个“对象不支持…”.document.querySelector行出错。我不知道为什么它不适用于您。您能提供一个URL来查看吗?嗨,Yasser。对不起,可以从工作PC访问上的工作URL。我一直在阅读有关querySelector和querySelectorAll的内容。显然,它们返回的是静态对象列表,而不是“活动”对象列表。我想知道这是否就是为什么。单击method不起作用?我不确定。也许它与javascript有关,所以它是动态的。
Sub Test()
Dim ie As New InternetExplorer
With ie
.Visible = True
.Navigate2 "file:///C:/Sample.html"
While .Busy Or .readyState <> READYSTATE_COMPLETE: DoEvents: Wend
.document.querySelector("input[value='Select']").Click
End With
End Sub