我正在尝试使用VBA打开IE的新实例,转到网页,登录,然后导航到我可以预订我的健身课程的页面,导航到正确的班级&按“书”按钮。
我非常精通简单的VBA,我已经使用了一段时间来自动执行excel任务,但我从未尝试过将它与IE一起使用,所以我对它的这一方面相当新。
我不太了解VBA如何与HTML集成,我的HTML知识非常基础。
到目前为止,我已设法创建用于打开IE的代码,导航到正确的网页,然后登录。 从那里它变得复杂......
网页上有一系列“积木”,可供周健身课程选择。这些都是每天更新的,因此代码需要搜索正确的日期,时间和时间。上课,然后按相应的书按钮。
我在过去几天广泛搜索了解决方案,但找不到与我正在寻找的任何类似的东西。
到目前为止我的VBA如下。这适用于我的要求的第一部分。
Sub Login_Test()
''This version successfully goes to puregym.com and logs into my account
'Outstanding''''''''''''''''''''''''''''''''''
'Need to select class page
'Need to select correct date & class
'Need to book class
''''''''''''''''''''''''''''''''''''''''''''''
' open IE, navigate to the desired page and loop until fully loaded
Set ie = CreateObject("InternetExplorer.Application")
my_url = "http://www.puregym.com/"
With ie
.Visible = True
.navigate my_url
Do Until Not ie.Busy And ie.readyState = 4
DoEvents
Loop
End With
' Input the userid and password
ie.Document.getElementById("edit-email").Value = "email address"
ie.Document.getElementById("edit-pincode").Value = "pin number"
' Click the Submit button
ie.Document.getElementById("edit-submit").Click
Do Until Not ie.Busy And ie.readyState = 4
DoEvents
Loop
' Navigate to bookings page
With ie
.navigate "http://www.puregym.com/members/bookings"
End With
End Sub
我可能错了,但我相信我想要运行的HTML示例如下。我想模仿选择课程并单击书本按钮的操作。 (一旦我掌握了它的基础知识,我希望VBA将类名,日期和时间与我将存储在excel范围内的列表进行比较,并且只有当它在范围内时才预订。但是我很感激我需要在跑步之前走路......以及
<div class="day column-1" data-date="Friday 22nd January" data- shortdate="Fri 22/1" data-index="1">
<h2>Fri 22/1</h2>
<div id="tt_block_53_33253" class="three columns tt_block" data-date="2016-01-22" data-time="06:15">
<div class="timetable-class limited-availability">
<button class="icon-info"> </button>
<div class="popout">
<span class="weekly-close"> </span>
<h1>FAST Tabata</h1>
<p class="timetable-info">This class takes interval training to the next level. 20 seconds high intense work followed by 10 seconds rest for 8 rounds, sound easy? Give this class a go, you won’t be disappointed.</p>
<img src="//www.puregym.com/sites/default/files/styles/square_thumbnail/public/classes/Misc20_0.jpg?itok=mnWQFaIU" alt="Example of FAST Tabata" />
</div>
<header>
<h1>FAST Tabata</h1>
<h2>
06:15 - 06:45 </h2>
</header>
<div class="pt-name">PT name: <strong>Lewis Pratten</strong></div>
<span class="gym-name">Bristol Harbourside</span>
<div class="booking-buttons">
<a href="/members/class-booking/book/53/33253" class="use-ajax secondary button">Book</a>
<span class="spaces-text">Spaces</span>
<span class="spaces-number">1</span>
</div>
非常感谢任何人提供的任何帮助。或者建议用不同的语言更容易吗?从我读过的内容来看,python或java可能是一个更好的环境,但是我不熟悉......
答案 0 :(得分:0)
要获得“预订”按钮,您可以执行以下操作:
Dim links, link
Set links = IE.Document.GetElementsByTagName("a")
For Each link In links
If link.innerText = "/members/class-booking/book/53/33253" Then
link.Click
End If
Next link