我正在尝试使用 Vba Internet Explorer 在 makemytrip 上选择按出发(早期(排序(下面给出的链接(,但无法做到这一点。
友情链接:- https://www.makemytrip.com/air/search?tripType=O&itinerary=DEL-DXB-D-30Nov2017&paxType=A-1&cabinClass=E
请检查下面给出的代码并帮助添加相同的行。
Sub mmtlink()
Dim IE As New SHDocVw.InternetExplorer
IE.Visible = True
IE.navigate "https://www.makemytrip.com/air/search?tripType=O&itinerary=DEL-DXB-D-30Nov2017&paxType=A-1&cabinClass=E"
IE.document.getElementById("sorterText").Click
End sub
根据模糊的描述,我简要查看了您提供的链接。
尝试用IE.document.getElementsByClassName("dropdown pull-right c-dropdown sortby-dropdown")
填充iHTMLElementCollection
。这很可能是一个元素的集合 - 包含<button>
和<ul>
的div 类。<ul>
包含一些<li>
,其中第三个包含出发排序选项。
您可以通过子元素从div 元素指向该选项 - 例如:divelement.children(1).children(2).children(0).click
希望这能帮助你以某种方式得到答案。下次:@jwdonahue评论中说的...您需要提供有关您的问题的更多信息,您尝试过什么,确切的问题是什么,您已经尝试过什么,您的范围是什么?
感谢邦特斯喇嘛的大力帮助。请在下面查看我提出的问题的答案。
Sub mmtlink()
Dim IE As New SHDocVw.InternetExplorer
Dim htmldoc As MSHTML.HTMLDocument
Dim all As MSHTML.IHTMLElementCollection
Dim one As MSHTML.IHTMLElement
'Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://www.makemytrip.com/air/search?tripType=O&itinerary=DEL-DXB-D-30Nov2017&paxType=A-1&cabinClass=E"
Do While IE.Busy = True Or IE.readyState <> 4
Loop
Set htmldoc = IE.document
Set all = htmldoc.getElementsByClassName("sortbytype")
For Each one In all
If one.getAttribute("Innertext") = "from BOM (early)" Then
one.Click
End If
Next one
Next i
End Sub