我已经设法在VBA中编写正确的代码来打开特定的网站。我现在要编写正确的代码,这将导致点击该网站上的特定按钮。
我真的很难粘贴元素的代码,这是我想要我的VBA代码点击的按钮。但这是网站上的最后一个"Get a quote"
按钮,它就在下面的文字:_"You're in good hands"
问题的另一部分是这个页面上有另一个类似的按钮,源代码如下:
</div>
<div class="SelfService-quote">
<div class="SelfService-quoteBtn">
<button class="sg-Btn sg-Btn--primary">GET a QUOTE for <span
class="Icon-arrowBottom--light Icon--xsmall SelfService-btnArrow"></span>
</button>
</div>
所以我需要做的是能够自动点击正确的按钮。如果有人可以为我提供的VBA代码,那将是非常有帮助的。
你想点击的按钮并不是一个真正的按钮。它只是一个伪装成按钮的链接(<a>
)。
<a class="sg-Btn sg-Btn--primary" href="/secure/comprehensive-car-insurance-get-a-quote.html">
<span>Get a quote</span>
</a>
所以真的没有必要去"点击"它的麻烦。直接导航到URL:
ie.Navigate "https://www.aami.com.au/secure/comprehensive-car-insurance-get-a-quote.html"
如果你想"点击"它,但是,你可以使用GetElementsByClassName()
来返回匹配该类的DOM元素数组。它将返回两个元素。要单击的链接/按钮是第二个元素(数组索引1
):
Dim e
Set e = ie.Document.GetElementsByClassName("sg-Btn sg-Btn--primary")(1)
e.Click
@Bond是正确的。"获取引用"元素都不是真正的按钮(给他的答案投票,而不是我的)。第一个生成一个链接下拉框,如下所示:
<ul class="SelfService-quoteList sg-List-unstyled">
<li class="SelfService-quoteItem"><a href="/secure/comprehensive-car-insurance-get-a-quote.html" target="_self" class=" ">Car Insurance</a></li>
<li class="SelfService-quoteItem"><a href="/secure/home-insurance-get-a-quote.html" target="_self" class=" ">Home & Contents</a></li>
<li class="SelfService-quoteItem"><a href="/secure/renters-fire-theft-get-a-quote.html" target="_self" class=" ">Renters Fire & Theft</a></li>
<li class="SelfService-quoteItem"><a href="/secure/landlord-home-get-a-quote.html" target="_self" class=" ">Landlord Insurance</a></li>
<li class="SelfService-quoteItem"><a href="/secure/travel-insurance-get-a-quote.html" target="_self" class=" ">Travel Insurance</a></li>
<li class="SelfService-quoteItem"><a href="/motorcycle-insurance.html" target="_self" class=" ">Motorcycle Insurance</a></li>
<li class="SelfService-quoteItem"><a href="/secure/nsw-ctp-get-a-quote.html" target="_self" class=" ">CTP Greenslip - NSW</a></li>
<li class="SelfService-quoteItem"><a href="/life-insurance/quotes.html" target="_self" class=" ">Life Insurance</a></li>
<li class="SelfService-quoteItem"><a href="/life-insurance/income-protection.html" target="_self" class=" ">Income Protection</a></li>
<li class="SelfService-quoteItem"><a href="/secure/business-insurance-quote.html" target="_self" class=" ">Business Insurance</a></li>
</ul>
第二个(似乎是你想要"点击"的那个)是(来自@Bond的帖子):
<a class="sg-Btn sg-Btn--primary" href="/secure/comprehensive-car-insurance-get-a-quote.html">
<span>Get a quote</span>
</a>
直接导航到你想去的页面,而不是点击主页上的任何元素。
对于这个问题,您甚至可以构建自己的表单,然后自己将数据发布到服务器。这只需要加载一个页面:结果页面。